{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "d4a80fd7-0965-4880-bb30-dc15b01bb1e3",
   "metadata": {},
   "outputs": [],
   "source": [
    "%matplotlib inline\n",
    "\n",
    "import numpy as np\n",
    "import pandas as pd\n",
    "from zigzag import *\n",
    "from zigzag.plotting import *"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "934b1c38-46cd-439d-bfe2-20530cff0936",
   "metadata": {},
   "source": [
    "Given,"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "d2e7a567-95a8-4fbe-b998-2df4bc1f272e",
   "metadata": {},
   "outputs": [],
   "source": [
    "X = np.array([1, 1.2, 1.5, 1.8, 2.4, 3.3, 2.4, 1.5, 1.6])"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "3734e01f-0e05-4e23-91f8-08188635c9f5",
   "metadata": {},
   "source": [
    "the pre-`0.3.0` behavior of `ZigZag` would produce the following with `(0.2, -0.2)` thresholds,"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "d6fe9015-6336-410d-89b4-fd981397e349",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "pivots = peak_valley_pivots_detailed(X, 0.2, -0.2, True, False)\n",
    "plot_pivots(X, pivots)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "c4a8e72f-4461-4cb8-b254-2dcfafe8ccca",
   "metadata": {},
   "source": [
    "As [ytian wrote in PR#3](https://github.com/jbn/ZigZag/pull/13), this looks like a bug for the last point which is clearly above the lowest point on the last segment. Consequently, `ytian` proposed the following behavior,"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "4e402274-48e4-4d3a-b5c8-c30ddec98e37",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "pivots = peak_valley_pivots_detailed(X, 0.2, -0.2, True, True)\n",
    "plot_pivots(X, pivots)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "02dba237-ef31-47ed-bc9b-0eb1a7d279c7",
   "metadata": {},
   "source": [
    "But this has its own problem. **What happens if, the series goes further down after the final period?**"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "31c72dc3-7da4-413c-9c48-5dbac259f675",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAWoAAAD4CAYAAADFAawfAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8qNh9FAAAACXBIWXMAAAsTAAALEwEAmpwYAABB+0lEQVR4nO3dd3yN5//48deVgYi9t1glw0yiVtVojbaKqlKqTVvjQ0tVFdVh1UertWrVpkbtXVU1Yq8MI8QMgkgiVsiQcd6/P8L51ueHhpxz7pPkej4e90PuM67rfXO8c53rvoYSETRN0zT75WB0AJqmadrT6UStaZpm53Si1jRNs3M6UWuaptk5nag1TdPsnJM1Ci1SpIi4ublZo2gtm7qZcJNLty9hEpP5MQflQPkC5SnkUsjAyDTNMgIDA2NEpOjjnrNKonZzcyMgIMAaRWvZVPkJ5THtM8HfQG2gCZgwYcpvIqC//qxpmZ9S6tKTnrNKotY0S7p8+TLh08PhLOAC+AM5gfoQfifc0Ng0zRZ0H7Vmt1JTU5k8eTIeHh6oCwoqAR8BBYFtQBSUy1/O2CA1zQZ0otbsUkhICA0bNqRfv340atSIcevHkat9LigKvA/kArVMMdR3qNGhaprV6USt2ZXExES++eYbateuzfnz55kyZQorVqzg89afM/v92ZTPXx5VUFH8o+I4xDowq/8skpOTjQ5b06xKJ2rNbuzatYuaNWsyevRounTpQkhICMnJyaxevRqArtW7crH/RUzDTEROimTI4CEEBAQwYMAAgyPXNOvSNxM1w92+fZtBgwYxa9YsKlSowJYtW3j11VcB6NSpE05Oj/+Yfv/991y9epUpU6bQuHFjOnbsaMuwNc1mdItaM4yIsGrVKtzd3ZkzZw4DBw7k+PHjvPLKK0RFRQFQsmRJihZ97NBSAH799Vfq16/PBx98wI4dO2wVuqbZlE7UmiGuXr1K+/btefvttylZsiSHDx/mp59+wtXVlePHj/Prr79y6dITh5Wa5cyZk6VLl+Ls7Eznzp25efOmDaLXNNvSiVqzKZPJxPTp03F3d2fLli2MHTuWQ4cOUadOHfNr3N3dadGiBeXKpW/oXbly5Vi6dCm3bt3i3XffJTU11Vrha5oh/jVRK6VyKaUOKaWOKqVOKKVG2CIwLes5efIkjRs3pk+fPrz44ouEhITw5Zdfmvug4+LiSE1NxdnZmfr166OUSnfZrVu3Ztq0aWzZsoVevXpZ6xI0zRDpaVHfB5qJSE2gFtBKKVXPqlFpWcr9+/cZPnw4tWrVIjQ0lAULFrBlyxYqVqxofo3JZGLJkiUsXbqU5911qHv37rRr1445c+YwY8YMS4WvaYb711Efkva/5t6DU+cHh96/S0uXvXv30qNHD0JDQ+natSsTJkx47M1BBwcH6tevj7Oz8zO1pP/XkiVLeOmllxgwYAD16tWjZs2aGQlf0+xCuvqolVKOSqkjQDTwt4gcfMxreiqlApRSAdevX7dwmFpmc+fOHXr37k2jRo2Ij49n06ZNLFq06LFJ+v79+wB4eXlRtWrVDNXr4uLCxo0bKVCgAG+++SaXL1/OUHmaZg/SlahFJFVEagFlgLpKKa/HvGamiPiIiM/ThlNpWd/atWvx8PBg5syZfP7554SEhNC6devHvvbixYtMnDjRogm1RIkSLFu2jKtXr/LGG2+QkpJisbI1zQjPNOpDRG6TtnZZK2sEo2VuERERdOjQgfbt21O0aFEOHDjA+PHjyZMnzxPfU7BgQSpXrkyxYsUsGkujRo0YOXIkx44d46uvvrJo2ZpmcyLy1IO0ZXAKPPjZBdgNvPG093h7e4uWfaSmpsqMGTMkf/78kitXLhkzZowkJSX963tMJpPVY+vTp48AMmPGDKvXpWkZAQTIE3JqelrUJYEdSqljwGHS+qg3WuW3hpbpnDp1iiZNmtCrVy/q1KnD8ePHGTJkCM7Ozk98j4iwdu1aNm7c+NwjPNJrwoQJ1KhRg08//RR/f3+r1qVp1vKviVpEjolIbRGpISJeIjLSFoFp9i0pKYlRo0ZRs2ZNQkJCmDt3Ltu2baNy5crpen+BAgXInz9/hkZ4pEeOHDlYs2YNBQoUwM/Pj5iYGKvWp2nWoGcmas9s//791KlTh++++4727dsTGhrKhx9+mK6kKyIopWjWrBmNGze2QbRQsWJF/vjjDyIjI+nYsSNJSUk2qVfTLEUnai3d7t69S9++fWnYsCGxsbFs3LiRpUuXUrx48XS9//bt28ydOxcjhm/6+voyefJk/P396dKli83r17SM0IlaS5cNGzbg4eHB1KlT6du3LydOnOD1119/pjLi4uJISEjAwcGYj12PHj1o3749q1atYvHixYbEoGnPQ1njZo6Pj4/oXcizhsjISPr168eKFSvw8vJi1qxZ1Kv3/CsImEwmwxI1QHJyMq+88gqHDh1i586d1K1b17BYNO2flFKBIuLzuOd0i1p7LBFhzpw5uLu7s379er7//nsCAwOfK0kfOHCAgwcPpg0zMjBJAzg7O7NixQry589Pq1atuHjxoqHxaFp66ESt/X/Onj1Ls2bN6N69OzVq1ODo0aN8/fXX5MiR45nLEhEuXbpkVwmxWLFizJs3j3v37uHn56dnLmp2TydqzSw5OZkxY8ZQvXp1goODmTlzJjt27MjQ+htKKd555x3eeustqw/FexatW7dm9uzZ7Ny5k4EDBxodjqY9ld4zUQPg0KFD9OjRg2PHjvH222/zyy+/ULJkyecuLzk5ma1bt9KkSRNcXFyeOgHGKO+//z4HDx5k0qRJFC1alK+//trokDTtsXSLOpu7d+8e/fv3p169ety4cYN169axYsWKDCVpgCtXrhAYGEhERISFIrWOcePGUa1aNUaNGkVgYKDR4WjaY+lRH9nYpk2b6N27N5cvX6Z3796MGTOGfPnyWaz8e/fuPXVBJnsRHR2Nr68vIkJAQIDFF4jStPTQoz60R0RHR/Puu+/y+uuvkydPHvbs2cPUqVMtkqTDwsIICwsDyBRJGtJuLq5Zs4bo6GiaNGlCYmKi0SFp2iN0os5GRIT58+fj7u7O6tWrGTFiBEFBQTRo0MBi5e/cuZMtW7ZYfbElS3s4JT40NJQBAwYYHY6mPULfTMwmzp8/T69evdi2bRsNGzZk1qxZuLu7W7QOpRRdunQhMTHRrkZ4pNfQoUOJioril19+oW7duvj5+RkdkqYBukWd5aWkpDB27Fi8vLw4fPgw06dPZ9euXRZN0iLC0aNHMZlM5MyZk/z581usbFsbN24cTZo0oWfPnmzatMnocDQN0Ik6SwsMDMTX15fBgwfTunVrTp48yX/+8x+Lzw68cOECa9asISQkxKLlGsHJyYn58+eTJ08e/Pz8iIqKMjokTdOJOiuKi4vjiy++oG7dukRFRbFq1SpWr15N6dKlrVJfxYoV+eCDD6hevbpVyre18uXLs2nTJu7du0fHjh1JTk42OiQtm9OJOovZsmULXl5ejB8/nh49enDy5Eneeustq9R169Ytbt68CUCFChUyZb/0k9SrV4/Zs2eze/duOnfubHQ4WjanE3UWERMTQ7du3WjZsiU5c+Zk165d/PrrrxQoUMBqda5bt45FixZhMpmsVoeRunTpwttvv83q1auZPn260eFo2Zge9ZHJiQiLFi3i888/JzY2lm+//ZahQ4eSK1cuq9f95ptvcvfuXcNXxLOmxYsXc/36dfr374+3t7deFlUzRNb9H5YNXLhwgVatWvH+++/zwgsvEBwczMiRI62apE0mEydPngSgUKFClC9f3mp12YMcOXKwatUqSpUqRZs2bTh//rzRIWnZkE7UmVBKSgrjxo3Dy8uLffv2MWXKFPbs2YOnp6fV6w4KCmL58uVcuXLF6nXZi8KFC7No0SJu3bpFu3bt9J6Lms3pRJ3JBAcHU69ePQYOHEjz5s05efIkn3zyidW7Hx7ONKxTpw7vvfceZcqUsWp99qZhw4ZMmjSJkJAQ+vfvb3Q4WjajE3UmER8fz+DBg/H19eXKlSssX76cdevWUbZsWavXHRYWxrx587h//z4ODg5UrlzZ6nXao969ezNw4ECmT5/OmDFjjA5Hy0Z0os4Etm7dSvXq1Rk7diwffvghoaGhdOzY0WbD4ZRSJCcnc//+fZvUZ8/GjBlDrVq1+Pbbb/H39zc6HC2b0Inajt24cQM/Pz9effVVHB0d2bFjB7NmzaJgwYJWrzs1NZXw8HAgbYx0z549LboEambl5OTExo0bKVWqFF27diUyMtLokLRsQCdqOyQiLFmyBHd3dxYvXszQoUM5evQoTZo0sVkM/v7+LFiwgNu3bwNkqcksGVW6dGk2btzI7du3adOmDQkJCUaHpGVxOlHbmUuXLvH666/TtWtXKlSoQGBgIKNHj8bFxcWmcTRo0IC33nrLqhNmMrMaNWowZcoUAgIC6NSpk9HhaFmcTtR2IjU1lYkTJ+Lp6cmuXbuYOHEi+/bto0aNGjaL4dy5c6xevRqTyYSLi4tNhvtlZh9++CEffvghGzZsYNasWUaHo2VhemaiHTh69Cg9evTg8OHDvPbaa0ybNs2QiSQ3b94kOjqaxMREcufObfP6M6NZs2YRERHBJ598Qvny5WnRooXRIWlZkN4z0UAJCQmMGjWKn376iYIFCzJp0iQ6d+5s0/7g1NRUbt26RZEiRYC0yTROTvr397O4efMmnp6exMfHExwcTMWKFY0OScuE9J6JdmjHjh3UqFGDMWPG8N577xEaGsq7775r85t2GzduZN68eeZ9AnWSfnaFChXi999/Jzk5ma5du+phjJrF6URtY7du3eLjjz+mWbNmiAhbt25l3rx5FC5c2JB4GjZsSKtWrWyyiFNW1qRJExYsWMCBAwfo3bu30eFoWYxO1DYiIixfvhx3d3cWLFjA4MGDOXbsGM2bN7d5LGfPnmXXrl0AFClSJMss+G+0jh070r9/f+bNm8fQoUONDkfLQv41USulyiqldiilQpVSJ5RSn9kisKzk8uXLvPnmm3Tq1IkyZcoQEBDADz/8YNgNu9OnTxMaGkpKSooh9WdlY8eOxcfHh59//pm9e/caHY6WRfzrzUSlVEmgpIgEKaXyAoFAOxE5+aT36JuJaVJTU5k2bRpDhw7FZDIxatQo+vXrZ0g/cGpqKomJibi6upKamkpqaio5cuSweRzZwa1bt/D19SUuLo4DBw5k+aVgNcvI0M1EEbkmIkEPfr4LhALW2XwvCwkJCaFRo0b069ePhg0bEhISwoABAwy7Wbd8+XLzbiyOjo46SVtRwYIFWbt2Lbdv36Zp06bExcUZHZKWyT1TH7VSyg2oDRy0SjRZQGJiIt9++y116tTh3LlzLFy4kD///JMKFSoYGpePjw8NGjTI0rux2BMvLy9++OEHLly4QL9+/bDGMFgt+0h3804plQdYBfQXkdjHPN8T6AlQrlw5iwWYmezatYuePXty+vRpunXrxvjx483jk41w5swZkpOT8fT0pEqVKobFkV199tlnXL9+ndGjR+Pt7U2fPn2MDknLpNLVvFJKOZOWpBeLyOrHvUZEZoqIj4j4FC1a1JIx2r3bt2/Tq1cvXn75ZZKSkvjrr7/47bffDE3SIsK+ffs4ePCgbs0ZaMSIEbRo0YK+ffuycuVKo8PRMqn03ExUwALgpoj0T0+h2eVmooiwevVq+vbtS1RUFJ9//jkjRozA1dXVsJhSUlIQEZydnYmPj8fZ2RlnZ2fD4tEgMjKSmjVrkpqaypEjR7Ld7jha+mR0ZmJDoBvQTCl15MHxmkUjzISuXr1K+/btefvttylRogSHDh3i559/NjRJm0wmFi5cyNq1axERcufOrZO0HShRogTbt2/n/v37vPXWW+ZZoJqWXukZ9bFHRJSI1BCRWg+OTbYIzh6ZTCamT5+Oh4cHf/31F2PHjuXQoUN4e3sbHRoODg64u7vj7u6u14+2M56envz2228cPnyYNm3aYDKZjA5Jy0T0EIBncPLkSRo3bkyfPn3w9fUlJCSEL7/80vD1MU6fPk1ERAQA9erVw8vLy9B4tMdr37493bp1Y+vWrUyZMsXocLRMRCfqdLh//z7Dhw+nVq1ahIaGMn/+fP7++28qVapkdGikpKSwefNm85Rwzb7NmzeP119/nS+++EL/m2npppc5/Rd79+6lR48ehIaG0qVLFyZMmECxYsUMjUlEiIiIoEiRIuTMmZObN2+SN29e3R+dSdy5cwdfX1+io6PZu3ev3qBBA/Qyp8/lzp079OnTh0aNGhEXF8emTZtYvHix4UkaIDo6mlmzZnH06FEgbZlNnaQzj/z587NgwQISExPp1KmT3nNR+1c6UT/G2rVr8fDwYMaMGfTv358TJ07QunVrw+IREf7++292794NQPHixenQoQM1a9Y0LCYtY+rXr8/ChQs5ceIEvXv31mPdtafSifofIiIi6NChA+3bt6dIkSIcOHCACRMmkCdPHpvHYjKZuHbtGpC2A/jt27eJjf2/CaHVq1cnZ86cNo9Ls5yOHTsybNgwFixYwJAhQ4wOR7NnImLxw9vbWzKT1NRUmTFjhuTPn19y5swpY8aMkaSkJENj2rZtm4wcOVLu3bsnIiImk8nQeDTrSE1NFR8fH3FwcJCtW7caHY5mICBAnpBTs32L+vTp0zRp0oRevXpRp04djh8/zpAhQ2ze53vnzh1Wr15NdHQ0ALVq1aJDhw7mnVf0uOisycHBgU2bNlG5cmU6d+5MeHi40SFpdijbJuqkpCRGjRpFjRo1OH78OHPmzGHbtm02XbwoKSmJO3fuAODs7Mz58+e5fv06kHaD0MPDA0dHR5vFoxmjaNGirF+/nqSkJFq2bPlIF5dRFh9fjNtENxxGOOA20Y3FxxcbHVK2li0T9YEDB6hTpw7fffcd7dq1IzQ0lI8++simrVYRYebMmWzalDbJM3fu3AwYMEAP1cqmqlatyqRJkzh16hTvvvuuoTcXFx9fTM8NPbl05xKCcOnOJXpu6KmTtYGyVaK+e/cuffv2pUGDBty5c4cNGzawbNkySpQoYZP6L1y4wB9//IGIoJSiadOmNGzY0Py8bj1nb35+fnzxxRds2rSJX375xbA4hm4dSvzteLgMXEx7LD45nq+3fW1YTNmdsXOfbWjjxo307t2bq1ev8umnnzJ69Gjy5s1r9Xrv3buHi4sLjo6O3Lhxg9OnT/Pyyy+TJ08e3XrW/j9jx47l/PnzfPHFF5QsWZJ33nnHKvWYTCYiIiI4dOgQJ0+eJD4+nnPnzhEUFET4pXB4uJ1mUeCTtB/D7+j+c6Nk+ZmJkZGRfPbZZyxfvhxPT09mz55NvXr1bFL3tWvXmD17Nm+99Raenp6kpqailNK7rGhPFRsbi7u7O3fu3OHYsWNUrFjxucpJTk4mNDSU4OBg4uLiOHfuHAEBAZw/f56bN28+soqfk5MTbm5uFC1alCOxR0gokwCFgMLAg2XVy+cvz8X+FzN8fdrjPW1mYpZtUYsIc+fOZeDAgcTHxzNq1CgGDRpk1b0CRYTAwEBy5sxJ9erVKV68OI0aNaJUqVKA7trQ0idfvnysXr2aFi1a8HazZuwxmch95QqUKwejR0PXrubX3r17l+DgYG7evElYWBiBgYEcO3aMhIQELl68SGpqqvm1Li4ulC5dmlKlStGpUyeqVKlCiRIlcHNzw8vLyzzS6WEfdXxyvPm9uZ1zM7r5aNv9JWiPyJIt6rNnz9KzZ0/8/f1p3LgxM2fOpGrVqlarLyEhARcXFwDmzp2Lq6srnTp1slp9Wvbwx8CBtBk3jjeBoaR1Fx91cuJg1arcL1iQCxcucPXq1Ufeky9fPgoWLIi3tzfu7u6UKFGC4sWLU69ePcqUKZPuG+aLjy/m621fE34nnHL5yzG6+Wi6Vu/672/UntvTWtRZKlEnJyfz888/M2LECHLlysVPP/3Exx9/bNWuhl27drF//34GDBiAs7MzCQkJ5MqVS4971jLOzY2Bly4x7n8ezqsU1Xx88PDwoHTp0uTLl48GDRrg6elJoUKFDAlVy7hs0fVx6NAhevTowbFjx+jQoQOTJ0+mZMmSFq8nPj6ew4cPU6dOHfLmzUvFihVRSpmHUz1sWWtahoWH8yNQHsgP1AIqAnkADh0yLi7N5jL9Xa179+7Rv39/6tevT0xMDGvXrmXlypUWTdIiQlJSEgCJiYn4+/sTFhYGQJkyZXjppZes2vetZVPlyuEI9AXeB2rwIEmXK2dkVJoBMnWi/vPPP/H09GTSpEn06tWLkydP0rZtW4vWISLMmTOHzZs3A2kzBgcMGKBXrtOsb/RoyJ370cdy5057XMtWMmWijo6OpkuXLrz22mu4urqyZ88epk2bRv78+S1S/vXr1zn04KulUgp3d3fc3NzMz9ti/LWm0bUrzJwJ5cuDUml/zpz5yKgPLXvIVH3UIsJvv/3GgAEDuHv3LsOHD2fIkCEWWe4zNTUVBwcHlFKcPHmS3bt34+XlRe7cuR+ZPahpNtW1q07MWuZJ1OfPn+c///kPW7dupUGDBsyaNQsPDw+LlB0ZGcnixYvp0KEDbm5u1K1bF19fX3L/79dOTdM0A9h910dKSgpjx46levXqHDx4kGnTprF79+4MJWkR4cKFC1y6dAmAwoULU65cOfMNQRcXF52kNU2zG3bdog4MDKR79+4cOXKEtm3bMnXqVEqXLv3c5T1cDAnS1v4oWLAg5cuXx9nZmY4dO1oqbE3TNIuyyxZ1XFwcAwcOpG7dukRGRrJy5UrWrFmToSR98OBBpk+fjslkQilF586d9exBTdMyBbtL1Fu2bMHLy4tx48bRvXt3QkND6dChwzPP9EtNTSUkJIT79+8DaTs/ly5d2jweumjRonrnbk3TMgW7SdQxMTF069aNli1bkjNnTnbu3MmMGTMoUKDAM5XzcIbgtWvXWLlyJSdPngSgWrVqtG3b1ry1laZpWmZheKIWERYtWkS1atVYunQp33zzDUeOHKFx48bPVI7JZGL58uX4+/sDULp0afz8/KhVq5blg9Y0TbMhQxP1hQsXaN26Nd26daNKlSoEBwczatSodLd6g4OD2bZtG5C2SWjOnDnNIzeUUri5uenFkTRNy/QMSdQpKSmMHz8eLy8v9u7dy+TJk9mzZw9eXl5Pfd/FixfNU7khbfzzxYsXzd0dbdu21ZNTNE3Lcmw+PO/IkSN0796dwMBA3njjDaZNm0bZsmUf+9obN24QHBxM48aNyZEjB9HR0Rw/fpyXXnoJV1dXWrZsqXdL0TQty7NZlouPj2fw4MH4+Phw5coVli1bxvr16x9J0gkJCRw6dIhbt24BcOfOHfbt20dkZCQAderUYeDAgbi6uqYFr5O0pmnZgE0y3bZt26hevTpjx47Fz8+P0NBQ3nnnHUwmE6dOneLatWsAJCUlsWnTJs6fPw9A+fLlGTx4MOUeLOvo5OSk+5w1Tct2rJqob9y4gZ+fH6+88goODg5s376dkSNHcu/ePfNr1qxZQ1BQEJA21rl///74+KRtcuDo6GiRBZc0TdMys3/dikspNRd4A4gWkaff7XvARyn5okgRPktK4lZ8PL169eKnn37CxcWFX3/9lVy5cuHn5wekLVlauHBhvfGrpmnZWka34poPTAF+S2+FZ4AuMTH4OjgwuHNnqFDBPOSuXbt2j6znXKxYsfQWq2mali2la3NbpZQbsDG9LWoHpeRHYAAQU6YMcvgwxYsX1/3LmqZpT5DhXcjTk6iVUj2BngA5wfufLwyEwGeKOPMpAsQYHYSN6WvOHvQ12055ESn6uCes0qJWSgU86TdDVpTdrhf0NWcX+prtgx6IrGmaZud0otY0TbNz/5qolVK/A/uBqkqpK0qpj9NR7swMR5a5ZLfrBX3N2YW+ZjuQrj5qTdM0zTi660PTNM3O6UStaZpm53Si1jRNs3M6UWuaptk5nag1TdPsnE7UmqZpdk4nak3TNDunE7WmaZqd04la0zTNzulErWmaZud0otY0TbNzOlFrmqbZOZ2oNU3T7JxO1JqmaXYuPbuQP7MiRYqIm5ubNYrWsqnjUcdJSk2CJMDxwQHkcMxB9eLVjQxN0ywiMDAw5kl7JlolUbu5uREQEGCNorVsSn2mYANwjbTvgd5AY0jOm0zAMP1Z0zI/pdSlJz1nlUStaZaSkpLC+PHjUdMVIgLNgHNAAHAE8r6cl1u3blGwYEFjA9U0K9J91JrdCgwMxNfXl8GDB+Pp44lTEyd4EXgV6AaO7o7Ebo2lYsWK/PDDD8TFxRkdsqZZhU7Umt2Ji4tj4MCB1K1bl6ioKFatWsXxfceZ+/NcyhcrjyqrKF+7PAsWLeDw4cM0bNiQr776isqVKzN16lSSkpKMvgRNsyidqDW7smXLFry8vBg3bhw9evRg5syZVKpUCYBuNbtxsf9FTMNMXOx/kTpOddi1axeLFi1i9+7dVKlShU8//ZRq1aqxcOFCUlNTDb4aTbMMnag1uxATE0O3bt1o2bIlOXPmZOfOnUydOpUbN25w+fLlx76nWLFilC5dmhw5ctCoUSN27tzJn3/+SYECBXj//fepWbMm69atQ2/grGV6ImLxw9vbWzQtPUwmk/z2229SuHBhcXZ2lm+//VYSEhLMz6ekpEhKSkq6yjGZTCIikpqaKsuWLZMXXnhBAHnxxRdl27ZtVrsGTbMEIECekFN1i1ozzIULF2jVqhXvv/8+VapUISgoiJEjRyIi/PnnnyQlJeHo6Iijo+NTy0lJSWHZsmUcOHAAAAcHB9555x1OnDjB7NmzuXr1Ks2bN+fVV1/l8OHDtrg0TbMonag1m0tJSWHcuHF4eXmxb98+Jk+ezJ49e/Dy8gLSEnhQUBAxMTHpKs/R0REnJyccHB79ODs5OfHxxx9z9uxZxo8fz5EjR6hbty4dOnQgNDTU4telaVbzpKZ2Rg7d9aE9SVBQkHh7ewsgbdq0kfDw8Me+7u7du89U7sNuj6e5c+eODB8+XPLmzSsODg7i5+cnFy5ceKZ6NM1ayEjXh1Iql1LqkFLqqFLqhFJqhPV/fWhZTXx8PIMHD8bX15crV66wfPly1q1bR9myZc2vOXXqFFeuXAEgT548z1S+UgqAy5cvs2jRoscO0cuXLx/Dhg0jLCyM/v378/vvv/PCCy/Qr18/oqKiMnB1mmZd6en6uA80E5GaQC2glVKqnlWj0rKUbdu2Ub16dcaOHYufnx+hoaF07NjRnFwBTCYT27dvZ/v27RkapXH//n1u3br11MkvRYoUYdy4cZw7dw4/Pz+mTZtGpUqV+Oabb7h9+/Zz161pVvOkpvbjDiA3EAS8+LTX6a4PTUQkJiZGPvjgAwGkSpUqsmPHjqe+Pi4u7pm7PB4nPaNE/un06dPSqVMnAaRgwYLy448/SlxcXIbj0LRnwVO6PtKboB2BI8A94McnvKYnaSswBJQrV862V6jZFZPJJEuWLJGiRYuKk5OTDB06VOLj4x/72tTUVAkODk5XH/OzxrB9+3Y5d+5cut8TFBQkrVu3FkBKliwp06ZNk/v371s0Lk17kqcl6nSN+hCRVBGpBZQB6iqlvB7zmpki4iMiPkWLPnalPi0buHTpEq+//jpdunTBzc2NwMBARo8ejYuLy2Nff+LECdauXUtYWJhF40hJSeHUqVOcO3cu3e+pXbs2mzZtYteuXVSsWJE+ffrg7u7OokWL9CxHzVhPyuBPOoBhwMCnvUZ3fWQ/KSkpMnHiRHF1dRVXV1eZOHFiuieqhIWFWSWmhISE526pm0wm+eOPP6RmzZoCiJeXl6xbt87iLX9Ne4gMjvooqpQq8OBnF+AV4JT1fnVomc2xY8do0KAB/fv35+WXX+bEiRN89tlnT52oEh0dzd27d1FKUaFCBavElStXLpRSxMbG4u/v/0w3KZVSvPbaawQFBfH777+TmJhI27ZtadiwIf7+/laJV9OeJD1dHyWBHUqpY8Bh4G8R2WjdsLTMICEhgaFDh+Lt7c2FCxdYsmQJGzdupHz58k99n4iwcuVKli5dapN1OE6ePMm+ffu4efPmM7/XwcGBzp07c/LkSWbMmEF4eDhNmzalZcuWBAYGWiFaTXuMJzW1M3Loro+sb/v27VK5cmUBxM/PT2JiYp7p/VFRURIREWGl6B5lMpnk9u3bFikrPj5efv75ZylcuLAA0qFDBwkNDbVI2Vr2hl7rQ7OUW7du0b17d5o1a4bJZOLvv/9m3rx5FC5cOF3vfzixpFixYpQsWdKaoZoppcifPz+Q1rp+npb1Qy4uLnzxxReEhYUxbNgw/vrrLzw9Pfnoo48IDw+3VMia9gidqLV0ERGWL1+Ou7s78+fPZ9CgQRw/fpxXXnkl3WWcOXOG6dOnc/bsWStG+mSJiYls2LCB3bt3Z7isfPnyMXz4cMLCwvjss89YsmQJVapUoX///kRHR1sgWk37hyc1tTNy6K6PrCU8PFzeeOMNAcTb21uCgoKeq5zk5GTZs2fPM09IsaTIyEhJTk62eLnh4eHy8ccfi4ODg7i6uso333xjse4WLXsgoxNenvXQiTprSElJkcmTJ0uePHkkd+7cMm7cuOdKcvHx8VZJjhmRlJQkp0+ftni5p06dko4dOwoghQoVkrFjxz5xso+m/dPTErXu+tAeKyQkhEaNGtG3b18aNGhASEgIAwYMwMnp2TaulwddJgsXLrTJCI/02r17N0uXLuXWrVsWLbdq1aosX76cwMBA6taty6BBg6hcuTIzZswgOTnZonVp2YdO1NojEhMT+e6776hTpw5nz55l4cKFbN68+bnHOiulePHFF/Hx8XlkESajvfTSS7z33nsULFjQKuXXqVOHP//8k507d+Lm5sZ//vMfPDw8+P333zGZTFapU8vCntTUzsihuz4yp127dknVqlUFkG7dusn169czVF5mWScjMjJSEhMTrVa+yWSSDRs2SI0aNQSQGjVqyIYNG/QsR+0R6K4P7Wlu375Nr169aNy4Mffv3+evv/7it99+o0iRIs9dZkREBBMnTuTChQsWjNTy4uPjmTt3Llu3brVaHUop3njjDYKDg1myZAlxcXG0adOGl156iV27dlmtXi3r0Ik6m1u9ejUeHh7Mnj2bL774gpCQEFq0aJHhcvPmzUuFChUoVqyYBaK0nty5c/Pmm2/y8ssvW70uBwcH3n33XUJDQ/n111+5cOECL7/8Mq1atSIoKMjq9WuZ2JOa2hk5dNeH/bty5Yq0a9dOAKlVq5YEBARYpNzU1NRM+5XeZDLJjRs3bFZffHy8jB07VgoVKiSAdOzYUU6dOmWz+jX7gu760B4ymUxMnz4dDw8PNm/ezI8//sihQ4fw9va2SPl//fUXa9assasRHunl7+/PzJkziY2NtUl9Li4ufPnll4SFhfHNN9+wadMmPD096d69O5cvX7ZJDFrmoBN1NnLy5EkaN25Mnz598PX1JSQkhEGDBuHs7GyR8kUEV1dX8uTJY1cjPNKrdu3avPzyy+TNm9em9ebPn59Ro0YRFhbGp59+ysKFC6lcuTKff/45169ft2ksmp16UlM7I4fu+rAviYmJMnz4cHF2dpZChQrJvHnzrLKjyuN+zqzi4+MNu46LFy/Khx9+KA4ODpInTx757rvv5M6dO4bEotkOuusj+9q7dy+1a9dm+PDhvP3224SGhuLn52fRFu+9e/eYN28ekZGRAJmyNf1P9+7d49dff2XPnj2G1F++fHnmzp1LSEgIrVq1YuTIkVSsWJFx48aRkJBgSEyasXSizqJiY2Pp06cPjRo1Ii4ujk2bNrFkyRKrjMKIi4t76q7fmY2rqyteXl5UrlzZ0Djc3d1ZsWIFAQEBeHt7M3DgQKpUqcLMmTP1LMfs5klN7YwcuuvDWGvXrpXSpUuLg4OD9O/f3yI7e/+b1NRUq9dhFHtZp2THjh1Sr149867uv//+e5b+e89u0F0f2cO1a9d4++23adeuHYUKFWL//v1MmDCBPHnyWKW+4OBg9u7dm/ZBcsiaH6WDBw8yc+ZM7t+/b3QoNGnShH379rF+/Xpy5crFu+++i7e3N5s2bcqUo2y09Mua/7uyGZPJxMyZM3F3d2fjxo3897//NS8KZE0XL17k/PnzWTpJFC9enJIlS9rNLyKlFG3atCE4OJhFixYRGxvL66+/TuPGjQ3rU9ds4ElN7YwcuuvDdk6dOiWNGzcWQJo0aSJnzpyxWd0mkynTrOdhCfY4muX+/fsybdo0KVmypADSunVrCQ4ONjos7Tmguz6ynqSkJL7//ntq1qzJsWPHmD17Ntu3b6dKlSpWrTcyMpJFixaRmJiIUoocOXJYtT57ER8fz/z58zl9+rTRoTwiR44c9O7dm3PnzvHjjz9y4MABateuTefOnQ3bSUezPJ2oM6EDBw7g7e3Nt99+S9u2bQkNDeXjjz+2ybC4xMREbty4wb1796xelz1xdnZGKUVqaqrRoTxW7ty5GTRoEGFhYXz99dds2LABd3d3evbsyZUrV4wOT8uoJzW1M3Lorg/riI2Nlb59+4pSSsqUKSPr16+3Sb0mk0muXbtmPjdyKy0j2WPXx5NERkZK3759xdnZWXLmzCkDBgzI8LK1mnWhuz4yv40bN+Lp6cmUKVP45JNPOHnyJG3atLFJ3fv372fWrFnm6cyOjo42qdfePPzGcvr0aVavXm3XN1GLFy/OL7/8wpkzZ+jcuTMTJ06kYsWKjBgxgrt37xodnvaMdKK2c1FRUXTq1Ik2bdqQL18+9u7dy+TJk226HkWdOnVo1apVhtanzkru3LlDTEwMiYmJRofyr9zc3Jg/fz7Hjx/n1VdfZfjw4VSsWJHx48dnivi1B57U1M7Iobs+Ms5kMsmcOXOkYMGCkiNHDhk1apRNR1hERETI+vXr9YSKxzCZTJm2++fQoUPyyiuvCCBlypSRWbNm2c2EnuwO3fWRuZw9e5bmzZvz8ccfU716dY4dO8Y333xj0xEWV69e5dy5c/pr8mMopXB0dCQlJYU///wzU61w5+vry99//822bdsoVaoUPXr0wNPTk+XLl+u9HO2YTtR2JDk5mTFjxlCjRg2CgoKYMWMGO3bsoGrVqjapX0S4ffs2AD4+PvTp04f8+fPbpO7MKCEhgRMnThAWFmZ0KM+sWbNmHDhwgLVr1+Ls7EynTp3w8fHhzz//tOu+92zrSU3tjBy66+PZHTp0yLz5aYcOHSQiIsLmMWzZskXGjh0r9+7ds3ndmVV8fLzRIWRYSkqK/Pbbb1KhQgUB5KWXXpI9e/YYHVa2g+76sF/37t3j888/p169esTExLBmzRpWrlxJyZIlbR5L7dq1adSoEblz57Z53ZmVi4sLANevX+fgwYMGR/N8HB0d6datG6dOnWLq1KmcPXuWRo0a8cYbb3D06FGjw9PQXR+G+vPPP/Hy8mLixIn06tWLkydP0q5dO5vGcPXqVfbu3QtAkSJFqF+/fqZfT9oIhw8fZvfu3Zl6JEWOHDno06cP586dY8yYMezdu5datWrRpUsXzp07Z3R42ZpO1AaIjo6ma9euvPbaa+TOnZs9e/Ywbdo0Q/qDjx07xuHDhzN1grEHLVq0oFevXuTKlcvoUDLM1dWVIUOGEBYWxldffcW6deuoVq0avXr14urVq0aHlz09qU8kI4fuo348k8kk8+fPl0KFComzs7MMHz5cEhMTDYnjYd9qSkqKxMXF2TyGrMpkMklQUFCW6Lt+6Nq1a/Lpp5+Ks7Oz5MqVSwYOHCgxMTFGh5XloPuojXf+/HlatGiBn58f1apV48iRIwwbNoycOXPaPJYNGzawYMECUlJScHR01H3SFnTz5k02btzI4cOHjQ7FYkqUKMHkyZM5ffo077zzDuPGjaNixYqMGjVKD9+0lSdl8IcHUBbYAYQCJ4DP/u09ukX9f5KTk2Xs2LHi4uIiefPmlWnTphk+ieTs2bOyd+/eTLV2RWZy5cqVLP13GxISIu3atRNAihYtKhMmTJCEhASjw8r0eEqLOj2JuiRQ58HPeYEzgMfT3qMTdZrAwECpXbu2ANK2bVu5fPmyYbFcuXJFTpw4YVj92VF8fLxcuHDB6DCs5sCBA9KsWTMBpGzZsjJnzhw9yzEDnpao/7XrQ0SuiUjQg5/vPmhZl7Zsuz5riYuLY+DAgfj6+nLt2jVWrlzJmjVrKFOmjGEx7dixgx07dujZZza0adMmli1bZhfbeFnDiy++yLZt29i6dSslSpTg448/xsvLixUrVujPmaU9KYM/7gDcgHAg32Oe6wkEAAHlypWz3a8hO/PXX3+ZJw707NlTbt26ZVgsJpPJ3MKJi4vTE1lsLDY21tBvUbZkMplk9erV4uHhIYDUqVNHNm/enKW7gCwNS9xMVErlAVYB/UUk9jEJf6aI+IiIT9GiRTP6+yPTiYmJ4f3336dly5Y4Ozuzc+dOZsyYQYECBQyJR0RYuXKleTnO3Llz4+rqakgs2VXevHnN36IiIiKydCtTKUX79u05duwY8+fP58aNG7Rq1YqmTZuyf/9+o8PL9NKVqJVSzqQl6cUistq6IWUuIsLixYtxd3fn999/55tvvuHo0aM0btzY0LiUUpQpU4Zy5coZGoeWNm5+9uzZHDhwwOhQrM7R0ZEPPviA06dPM3nyZE6dOkWDBg148803OXbsmNHhZV5PamrL/3VpKOA3YOK/vfbhkV1uJl64cEFatmwpgNSrV0+OHz9udEhy+fJluXr1qtFhaP8jICDAkDHzRrt3756MHj1a8ufPL0op6dKli5w7d87osOwSGez6aAh0A5oppY48OF6z2m+OTCAlJYXx48fj6elpXsh/z549eHl5GRqXyWRi7dq1/PXXXw9/yWp2wtvbm5w5c2Iymbhz547R4diMq6srQ4cOJSwsjEGDBrFmzRqqVatG7969iYiIMDq8zONJGTwjR1ZuUQcHB4u3t7cA8sYbb0h4eLjRIYnJZDLftLl+/bqeaWjHVq1aJRMnTpSkpCSjQzFERESE9OnTR5ycnMTFxUUGDRokN27cMDosu4CemZhxCQkJDBkyBB8fHy5fvsyyZctYv349ZcuWNTSulJQUli1bxq5du4C0hZX0TEP7VbduXV5++WWcnZ2NDsUQJUuWZOrUqZw+fZoOHTrw008/UaFCBb7//vtst7P9s9CJOh22bdtG9erV+fHHH/nggw8IDQ3lnXfesYtV5hwdHXFxcckSiwFlB2XKlKFWrVpA2i//7KpixYosXLiQo0eP0rRpU7799lsqVarEL7/8kmXHnWeETtRPcfPmTT766CNeeeUVlFJs376dOXPmUKhQIUPjunv3LuvXryc6OhqlFG+++SYvvviioTFpzyY6OppffvmFEydOGB2KoapXr87atWvZv38/np6efPbZZ1StWpX58+eTmppqdHh2QyfqxxARli5diru7OwsXLuSrr77i2LFjNG3a1LCYUlJSzAvgODo6EhoaSlRUFIBdtOy1Z1O4cGE8PDwM2SDCHtWrV49t27axZcsWihYtyocffkj16tVZtWqVvjEO+mbi/7p06ZK89tprAoivr68cPXrU6JDEZDLJ1KlTZcmSJebH9JoKWUtm3dXcGkwmk6xcuVKqVasmgPj4+MiWLVuy/CxH9M3Ef5eamsqkSZPw8PBg586dTJgwgf3791OjRg1D4gkPD2fz5s2ICEopXnrppUe6N5ycnAyJS7O8LVu2sHjx4iw9c/FZKKXo0KEDx48fZ968eURHR9OiRQuaN2+eLSYNPY5O1MDx48dp0KAB/fv3p3Hjxpw4cYL+/fvj6Oho0zgSEhLM/XLR0dGEhISY74RXr16dihUr2jQezTaKFi1K8eLFjQ7D7jg5OeHn58eZM2eYNGkSISEh1K9fn3bt2hESEmJ0eLb1pKZ2Ro7M0vWRkJAgQ4cOFScnJylatKgsWbLEsK9XkZGRMmrUKAkJCRGRtK4N/XU4+8nqX+8z4u7duzJq1CjJly+fKKXkvffek/PnzxsdlsWguz7+f/7+/tSoUYP//ve/dO3aldDQUN59912b3ZgTEY4cOWJuGRQtWpR69eqZW1ZOTk42b9Frxrp16xazZs0iMjLS6FDsUp48efjmm28ICwvjyy+/ZOXKlVStWpVPPvmEa9euGR2eVWW7RH3r1i169OhB06ZNSU1N5e+//2b+/PkULlzYJvU/HCOqlCIoKMi8UI2DgwOvvPIKRYoUsUkcmv3JkSMHIqLHEf+LwoUL8+OPP3L+/Hm6d+/OzJkzqVSpEkOGDOHWrVtGh2cdT2pqZ+Swx64Pk8kky5cvl+LFi4ujo6N8+eWXNp9qvWfPHvnhhx/M04fj4uL0V13tEUZ/HqKjo+XixYvm8/3794u/v7/5/Pz584/sWhMfH2/4CKSzZ89Kly5dRCkl+fPnl9GjR2fKtdfJ7l0fV65coW3btrzzzjuULl2aw4cPM3bsWKtPtU5ISGDv3r3m8c/ly5enbt265rv7uXPn1mOgtUc8/DwEBQWxdetWi5cfHx//SDfBgQMHWLFihfnc39+fdevWmc+vXbvG1atXzec7d+7E39/ffL5kyRKWLFliPl+1ahVbtmwxn+/fv/+RST2XL1/m5s2b5nOxwBjpypUrs3jxYo4cOULjxo35+uuvqVSpElOmTMky306ydKI2mUxMnToVDw8Ptm7dys8//8zBgwepXbu21eoUEVJSUoC0RL1161bOnj0LpE0fbtq0qSE7j2uZS1RUFNeuXXvm2Xkiwp07d8wJ8PTp06xcudJ8vmfPHubOnWs+T01NJSkpyXzepEkTOnfubC6vffv2dOnSxXzeoUMH2rZtaz6vV68evr6+5nMXF5dHPt9BQUGcOXPGfL5ixQp2795tPp8wYQKbN29+5Png4GDz+Y0bN9I9bLFGjRqsX7+evXv3Uq1aNfr27Uu1atVYsGBB5p/l+KSmdkYOe+j6CAkJkfr16wsgLVq0kLCwMKvXaTKZZO7cubJu3TrzY0ZuxaVlXikpKU/crf6fz0VERMimTZvMu4Dv379fhg0bZu7WCwgIkMmTJ5ufj4yMlDNnzjyxbGv4Z13h4eESFRVlPvf395fQ0FARSfv/M3v2bNm3b5+IiCQlJcmIESNk+/bt5nKOHz8ud+/e/dc6TSaTbN68WerUqSOAeHh4yOrVqw3vWnoaMrIL+fMcRibqxMRE+fbbb8XZ2VkKFy4sCxcutOo/zo0bN+Tw4cPm8127dklgYKDV6tOyl4SEBFmxYoXcvHlTREROnz4tw4cPl4iICBERCQ0NldGjR5uTX3R0dJbZpCApKUmOHj0qkZGRIiISFRUlw4YNkyNHjohI2nC9bdu2mf9uHsdkMsmKFSukatWqAkjdunVl69atNon/WWWbRL17927ztNP33ntPoqOjrVJPamqqOfn7+/vLyJEjM+XNC83+Xbt2TcaOHSunTp0SkbRvaNu3bzd/U/vnZzGrS01NlWvXrpm/LZw/f15GjBhh3kA4PDxcfv/9d3Pi/uffS3JyssyZM0fKli0rgDRv3lwOHjxo+4t4iiyfqG/fvi29evUSQNzc3GTz5s1WqysyMlLGjx9vvvMdHx8vsbGxVqtP07JLIn4eSUlJ5q6VU6dOyaRJkx7p9vnll1/M5w//r06YMEGKFCkigLRr1848ycxoT0vUmf5m4po1a3B3d2fWrFkMGDCAkJAQWrZsabHyRYTLly8THh4OQKFChShRooR5MoqLiwt58+a1WH2a9r/0yKAnc3Z2xsEhLY1VrVqVfv36mUdz5cuXj1KlSuHi4gLArl27mDx5Mv369TNPmnm41vwHH3zAxYkTwc0NHBzS/ly82JiLegwlFhge8798fHwkICDA4uX+U0REBJ9++ilr1qyhVq1azJo1Cx8fH4uVL5K2GJKIMGXKFPLnz8/7779vsfI1TbOt8PBwoqKizKNUlixZwuXLl4mJiWHKpEmkJCfTCfgZKAGQOzfMnAldu9okPqVUoIg8NollukRtMpmYOXMmgwcPJikpiREjRvD5559bdGujgIAAAgIC6NmzJw4ODkRFRVGwYEFy5MhhsTo0TTPWrVu3iIuLo0yZMlwtU4bOV6+yD2gM7Hj4ovLl4eJFm8TztESdqdbKDA0NpWfPnuzZs4dmzZoxY8YMKleunOFyTSYTp0+fpmLFiuTMmZM8efJQpEgR7t+/j4uLi17ZTNOyoIIFC1KwYEEASkdEsBM4ATwy4vpBl6fRMkUfdVJSEiNHjqRWrVqcOHGCefPmsXXrVoskaUibfbVs2TLzDKpq1arx9ttvm/u2NE3L4sqVwwGoDtT6n8ftgd0n6n379lG7dm2GDRtGhw4dOHXqFH5+fhm6wSIirF692jwVtlSpUnTr1s286aimadnM6NFpfdL/lDt32uN2wG4TdWxsLJ988gmNGjXi3r17/PHHHyxZsoRixYo9V3lJSUlcuHABSLuL7uDgYE72SikqVapkvnusaVo207Vr2o3D8uVBqbQ/bXgj8d/Y5c3E9evX06dPHyIiIujXrx/ff/89efLkyVBMmzdv5vDhwwwcOFB3aWiaZneedjPRrpqQ165do2PHjrRt25ZChQpx4MABJk6c+FxJOiYmhgULFnD9+nUAXnzxRfz8/MiVK5elw9Y0TbMqu0jUIsLs2bNxd3dnw4YNjB49msDAQOrWrftM5dy9e5cbN24AaRNRYmNjiY2NBdLu8JYtW1ZPHtA0LdMxPFGfOXOGpk2b0qNHD2rXrs2xY8cYOnRousZFiwgJCQnA/42v/vvvvwFwdXXl008/pVKlSlaNX9M0zdoMS9RJSUmMHj2aGjVqcPToUWbPns327dt54YUXnvq+h2s9Q9r08fnz5wNpW1m9+eabtGjRwvy8bj1rmpYVGDLh5eDBg3Tv3p2QkBA6duzIL7/8QokSJR772odTuSFtqN6uXbv48ssvcXR0xN3dnbJly5pfU6VKFVtehqZpmk3YtEV99+5d+vXrR/369bl9+zbr169n+fLlT0zS586d46effjJvWFmqVCl8fX1JTk4GwN3dHV9fX91y1jQtS7NZov7jjz/w9PRkypQpfPLJJ5w4cYI2bdo88pobN24wffp0zp8/D6TdAKxSpYp5Kx43NzeaN2+uR25ompatWD1RR0VF0blzZ9544w3y5cvH3r17mTx5Mvny5SM5OZnFixcTGBgIpC1LmCdPHvPEk8KFC9O+fXsKFy5s7TA1TdPs1r8maqXUXKVUtFIqJN2lBgYi5cszr2dP3N3dWbNmDSNHjiQoKIjY2Fh27twJpK0l+3Bh7Ifn3bp1o0KFCs95OZqmaVnPv85MVEo1Bu4Bv4mIV3oKra6UFAO2A7XLl6f311/To0cPAFavXo2LiwutW7fOWOSapmlZSIaWORWRXUopt2ep8AQQDvwKuMXHc9XR0Twy46233nqWojRN07I9iw3PU0r1BHoCOAOHgRcAuX4d9dFHlqpG0zQt20nXokwPWtQb09v1kUcpqfbg52RIOgbHnz/ETKEIEGN0EDamrzl70NdsO+VFpOjjnrDKhJc4CAx4Ql9LVqSUCnhS31JWpa85e9DXbB8MX+tD0zRNe7r0DM/7HdgPVFVKXVFKfWz9sDRN07SH0jPq493nKHfmc7wnM8tu1wv6mrMLfc12wCo7vGiapmmWo/uoNU3T7JxO1JqmaXbOoolaKdVKKXVaKXVOKTXEkmXbI6VUWaXUDqVUqFLqhFLqM6NjshWllKNSKlgptdHoWGxBKVVAKbVSKXXqwb93faNjsjal1OcPPtchSqnflVJZbtnKx61lpJQqpJT6Wyl19sGfBY2MESyYqJVSjsBUoDXgAbyrlPKwVPl2KgX4QkTcgXrAJ9ngmh/6DAg1OggbmgRsFpFqQE2y+LUrpUoD/QCfBxPdHIHOxkZlFfOBVv/z2BBgm4hUAbY9ODeUJVvUdYFzIhImIknAUqCtBcu3OyJyTUSCHvx8l7T/vKWNjcr6lFJlgNeB2UbHYgtKqXxAY2AOgIgkichtQ4OyDSfARSnlBOQGIgyOx+JEZBdw838ebgssePDzAqCdLWN6HEsm6tLA5X+cXyEbJK2HHkyzrw0cNDgUW5gIDAJMBsdhKxWB68C8B909s5VSrkYHZU0ichX4mbT11a4Bd0Rki7FR2UxxEbkGaY0xoJjB8Vg0UT9uP6xsMfZPKZUHWAX0F5FYo+OxJqXUG0C0iAQaHYsNOQF1gOkiUhuIww6+DlvTg37ZtkAFoBTgqpR6z9iosi9LJuorQNl/nJchC35V+l9KKWfSkvRiEVltdDw20BB4Uyl1kbTurWZKqUXGhmR1V4ArIvLw29JK0hJ3VvYKcEFErotIMrAaaGBwTLYSpZQqCfDgz2iD47Fooj4MVFFKVVBK5SDtxsN6C5Zvd1TarrpzgFARGW90PLYgIl+JSBkRcSPt33i7iGTplpaIRAKXlVJVHzzUHDhpYEi2EA7UU0rlfvA5b04Wv4H6D+uBDx78/AGwzsBYAAuuniciKUqpT4G/SLtDPFdETliqfDvVEOgGHFdKHXnw2FAR2WRcSJqV9AUWP2iEhAEfGhyPVYnIQaXUSiCItNFNwdjh1OqMerCWUROgiFLqCjAM+AFY/mBdo3Cgo3ERptFTyDVN0+ycnpmoaZpm53Si1jRNs3M6UWuaptk5nag1TdPsnE7UmqZpdk4nak3TNDunE7WmaZqd+399j3NPr1cb7gAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<Figure size 432x288 with 2 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "X = np.array([1, 1.2, 1.5, 1.8, 2.4, 3.3, 2.4, 1.5, 1.6])\n",
    "Y = np.array([1, 1.2, 1.5, 1.8, 2.4, 3.3, 2.4, 1.5, 1.6, 1.55, 1.4])\n",
    "\n",
    "_, ax = plt.subplots(2, 1, sharex=True, sharey=True)\n",
    "plot_pivots(X, peak_valley_pivots_detailed(X, 0.2, -0.2, True, True), ax=ax[0])\n",
    "plot_pivots(Y, peak_valley_pivots_detailed(Y, 0.2, -0.2, True, True), ax=ax[1])"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "083fdc82-08d8-41cf-a8c2-75cd0873beef",
   "metadata": {},
   "source": [
    "Under the new proposed behavior, there is a phantom segment. The final valley-to-peak never exceeded the threshold required to be marked as such. When there was a further decline, it disappeared. \n",
    "\n",
    "However, if there was a further increase, the proposed change looks more intuitive."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "id": "db1bc202-bcfc-4f6d-b040-d5ebdefbfdee",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAWoAAAD4CAYAAADFAawfAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8qNh9FAAAACXBIWXMAAAsTAAALEwEAmpwYAAA+QElEQVR4nO3dd1zVZf/H8dcFIgIu3BtcJcOFYK7Mshxl7j2KSjDNnWlZ3Xfq7W1ZpqVJjjRzpKZgrsq9cwAuhqWICiriQlFAxrl+f6D8stsM85zzPcDn+XjwAOGc63qfgg9fru81lNYaIYQQtsvO6ABCCCEeTgq1EELYOCnUQghh46RQCyGEjZNCLYQQNq6QJRotU6aMdnd3t0TTooC6lnqNs0lnMWlTzufslB1uJd0o5VTKwGRCmEdYWNgVrXXZB33NIoXa3d2d0NBQSzQtCii36W6Y9plgM9AQaAUmTJhKmAgdKd9rIu9TSp39q69ZpFALYU5xcXGcCzoHJwEnYAfgCDSFczfOGZpNCGuQMWphs7Kyspg5cyaenp6oWAU1gdcBV2ArcAmqlahmbEghrEAKtbBJERERNG/enOHDh9OiRQumrZ1GkS5FoCzwClAE1ArFeL/xRkcVwuKkUAubkpaWxgcffEDDhg2JiYlh1qxZ/PDDD4xqP4r5r8zHrYQbylVR/vXy2N20Y97IeWRkZBgdWwiLkkItbMauXbuoX78+kydPpm/fvkRERJCRkUFwcDAA/er248zIM5j+bSLhiwTeHfcuoaGhjB492uDkQliW3EwUhktKSmLs2LHMmzeP6tWrs2nTJl544QUAevXqRaFCD/42/c9//sP58+eZNWsWLVu2pEePHtaMLYTVyBW1MIzWmtWrV+Ph4cE333zDmDFjOH78OM8//zyXLl0CoGLFipQt+8CppQB8/fXXNG3alFdffZXt27dbK7oQViWFWhji/PnzdOnShe7du1OxYkUOHTrEp59+iouLC8ePH+frr7/m7Nm/nFaaw9HRkeXLl+Pg4EDv3r25du2aFdILYV1SqIVVmUwmgoKC8PDwYNOmTUydOpWDBw/i4+OT8xgPDw/atGlDtWq5m3pXrVo1li9fzvXr1+nTpw9ZWVmWii+EIf62UCuliiilDiqljiqlIpVSE6wRTOQ/UVFRtGzZkiFDhvDUU08RERHBO++8kzMGffv2bbKysnBwcKBp06YopXLddvv27Zk9ezabNm1i0KBBlnoJQhgiN1fUd4DntNb1gQZAO6VUE4umEvnKnTt3+Oijj2jQoAHR0dEsWrSITZs2UaNGjZzHmEwmli1bxvLly/mnpw4NHDiQzp0788033zBnzhxzxRfCcH8760Nn/9TcuvtPh7tvcn6XyJW9e/cSEBBAdHQ0/fr1Y/r06Q+8OWhnZ0fTpk1xcHB4pCvpP1u2bBlPP/00o0ePpkmTJtSvX/9x4gthE3I1Rq2UsldKHQESgc1a6wMPeEygUipUKRV6+fJlM8cUec2NGzcYPHgwLVq0ICUlhY0bN7JkyZIHFuk7d+4A4O3tzZNPPvlY/To5ObF+/XpKlixJx44diYuLe6z2hLAFuSrUWussrXUDoArQWCnl/YDHzNVa+2qtfR82nUrkf2vWrMHT05O5c+cyatQoIiIiaN++/QMfe+bMGWbMmGHWglqhQgVWrFjB+fPn6dChA5mZmWZrWwgjPNKsD611Etl7l7WzRBiRt124cIFu3brRpUsXypYty/79+/n8888pWrToXz7H1dWVWrVqUa5cObNmadGiBRMnTuTYsWO89957Zm1bCKvTWj/0jextcEre/dgJ2A10eNhzGjVqpEXBkZWVpefMmaNLlCihixQpoqdMmaLT09P/9jkmk8ni2YYMGaIBPWfOHIv3JcTjAEL1X9TU3FxRVwS2K6WOAYfIHqNeb5HfGiLPOXHiBK1atWLQoEH4+Phw/Phx3n33XRwcHP7yOVpr1qxZw/r16//xDI/cmj59OvXq1WPo0KHs2LHDon0JYSl/W6i11se01g211vW01t5a64nWCCZsW3p6OpMmTaJ+/fpERESwYMECtm7dSq1atXL1/JIlS1KiRInHmuGRG4ULFyYkJISSJUvi7+/PlStXLNqfEJYgKxPFI/v111/x8fHhX//6F126dCE6OprXXnstV0VXa41Siueee46WLVtaIS3UqFGDDRs2kJCQQI8ePUhPT7dKv0KYixRqkWvJyckMGzaM5s2bc/PmTdavX8/y5cspX758rp6flJTEggULMGL6pp+fHzNnzmTHjh307dvX6v0L8TikUItcWbduHZ6ennz11VcMGzaMyMhIXnrppUdq4/bt26SmpmJnZ8y3XUBAAF26dGH16tUsXbrUkAxC/BPKEjdzfH19tZxCnj8kJCQwfPhwfvjhB7y9vZk3bx5NmvzzHQRMJpNhhRogIyOD559/noMHD7Jz504aN25sWBYh/kgpFaa19n3Q1+SKWjyQ1ppvvvkGDw8P1q5dy3/+8x/CwsL+UZHev38/Bw4cyJ5mZGCRBnBwcOCHH36gRIkStGvXjjNnzhiaR4jckEIt/sfJkyd57rnnGDhwIPXq1ePo0aO8//77FC5c+JHb0lpz9uxZmyqI5cqVY+HChdy6dQt/f39ZuShsnhRqkSMjI4MpU6ZQt25dDh8+zNy5c9m+fftj7b+hlKJnz5507drV4lPxHkX79u2ZP38+O3fuZMyYMUbHEeKh5MxEAcDBgwcJCAjg2LFjdO/enS+//JKKFSv+4/YyMjLYsmULrVq1wsnJ6aELYIzyyiuvcODAAb744gvKli3L+++/b3QkIR5IrqgLuFu3bjFy5EiaNGnC1atX+fHHH/nhhx8eq0gDxMfHExYWxoULF8yU1DKmTZtGnTp1mDRpEmFhYUbHEeKBZNZHAbZx40YGDx5MXFwcgwcPZsqUKRQvXtxs7d+6deuhGzLZisTERPz8/NBaExoaavYNooTIDZn1Ie6TmJhInz59eOmllyhatCh79uzhq6++MkuRPn36NKdPnwbIE0Uasm8uhoSEkJiYSKtWrUhLSzM6khD3kUJdgGit+fbbb/Hw8CA4OJgJEyYQHh5Os2bNzNb+zp072bRpk8U3WzK3e0vio6OjGT16tNFxhLiP3EwsIGJiYhg0aBBbt26lefPmzJs3Dw8PD7P2oZSib9++pKWl2dQMj9waP348ly5d4ssvv6Rx48b4+/sbHUkIQK6o873MzEymTp2Kt7c3hw4dIigoiF27dpm1SGutOXr0KCaTCUdHR0qUKGG2tq1t2rRptGrVisDAQDZu3Gh0HCEAKdT5WlhYGH5+fowbN4727dsTFRXFm2++afbVgbGxsYSEhBAREWHWdo1QqFAhvv32W4oWLYq/vz+XLl0yOpIQUqjzo9u3b/P222/TuHFjLl26xOrVqwkODqZy5coW6a9GjRq8+uqr1K1b1yLtW5ubmxsbN27k1q1b9OjRg4yMDKMjiQJOCnU+s2nTJry9vfn8888JCAggKiqKrl27WqSv69evc+3aNQCqV6+eJ8el/0qTJk2YP38+u3fvpnfv3kbHEQWcFOp84sqVKwwYMIC2bdvi6OjIrl27+PrrrylZsqTF+vzxxx9ZsmQJJpPJYn0YqW/fvnTv3p3g4GCCgoKMjiMKMJn1kcdprVmyZAmjRo3i5s2bfPjhh4wfP54iRYpYvO+OHTuSnJxs+I54lrR06VIuX77MyJEjadSokWyLKgyRf3/CCoDY2FjatWvHK6+8whNPPMHhw4eZOHGiRYu0yWQiKioKgFKlSuHm5maxvmxB4cKFWb16NZUqVeLll18mJibG6EiiAJJCnQdlZmYybdo0vL292bdvH7NmzWLPnj14eXlZvO/w8HBWrlxJfHy8xfuyFaVLl2bJkiVcv36dzp07y5mLwuqkUOcxhw8fpkmTJowZM4bWrVsTFRXFW2+9ZfHhh3srDX18fOjfvz9VqlSxaH+2pnnz5nzxxRdEREQwcuRIo+OIAkYKdR6RkpLCuHHj8PPzIz4+npUrV/Ljjz9StWpVi/d9+vRpFi5cyJ07d7Czs6NWrVoW79MWDR48mDFjxhAUFMSUKVOMjiMKECnUecCWLVuoW7cuU6dO5bXXXiM6OpoePXpYbTqcUoqMjAzu3Lljlf5s2ZQpU2jQoAEffvghO3bsMDqOKCCkUNuwq1ev4u/vzwsvvIC9vT3bt29n3rx5uLq6WrzvrKwszp07B2TPkQ4MDDTrFqh5VaFChVi/fj2VKlWiX79+JCQkGB1JFABSqG2Q1pply5bh4eHB0qVLGT9+PEePHqVVq1ZWy7Bjxw4WLVpEUlISQL5azPK4KleuzPr160lKSuLll18mNTXV6Egin5NCbWPOnj3LSy+9RL9+/ahevTphYWFMnjwZJycnq+Zo1qwZXbt2teiCmbysXr16zJo1i9DQUHr16mV0HJHPSaG2EVlZWcyYMQMvLy927drFjBkz2LdvH/Xq1bNahlOnThEcHIzJZMLJyckq0/3ystdee43XXnuNdevWMW/ePKPjiHxMVibagKNHjxIQEMChQ4d48cUXmT17tiELSa5du0ZiYiJpaWk4Oztbvf+8aN68eVy4cIG33noLNzc32rRpY3QkkQ/JmYkGSk1NZdKkSXz66ae4urryxRdf0Lt3b6uOB2dlZXH9+nXKlCkDZC+mKVRIfn8/imvXruHl5UVKSgqHDx+mRo0aRkcSeZCcmWiDtm/fTr169ZgyZQr9+/cnOjqaPn36WP2m3fr161m4cGHOOYFSpB9dqVKl+P7778nIyKBfv34yjVGYnRRqK7t+/TpvvPEGzz33HFprtmzZwsKFCyldurQheZo3b067du2ssolTftaqVSsWLVrE/v37GTx4sNFxRD4jhdpKtNasXLkSDw8PFi1axLhx4zh27BitW7e2epaTJ0+ya9cuAMqUKZNvNvw3Wo8ePRg5ciQLFy5k/PjxRscR+cjfFmqlVFWl1HalVLRSKlIpNcIawfKTuLg4OnbsSK9evahSpQqhoaF8/PHHht2w++2334iOjiYzM9OQ/vOzqVOn4uvry2effcbevXuNjiPyib+9maiUqghU1FqHK6WKAWFAZ6111F89R24mZsvKymL27NmMHz8ek8nEpEmTGD58uCHjwFlZWaSlpeHi4kJWVhZZWVkULlzY6jkKguvXr+Pn58ft27fZv39/vt8KVpjHY91M1Fpf1FqH3/04GYgGLHP4Xj4SERFBixYtGD58OM2bNyciIoLRo0cbdrNu5cqVOaex2NvbS5G2IFdXV9asWUNSUhLPPvsst2/fNjqSyOMeaYxaKeUONAQOWCRNPpCWlsaHH36Ij48Pp06dYvHixfz0009Ur17d0Fy+vr40a9YsX5/GYku8vb35+OOPiY2NZfjw4VhiGqwoOHJ9eaeUKgqsBkZqrW8+4OuBQCBAtWrVzBYwL9m1axeBgYH89ttvDBgwgM8//zxnfrIRfv/9dzIyMvDy8qJ27dqG5SioRowYweXLl5k8eTKNGjViyJAhRkcSeVSuLq+UUg5kF+mlWuvgBz1Gaz1Xa+2rtfYtW7asOTPavKSkJAYNGsQzzzxDeno6v/zyC999952hRVprzb59+zhw4IBczRlowoQJtGnThmHDhrFq1Sqj44g8Kjc3ExWwCLimtR6Zm0YLys1ErTXBwcEMGzaMS5cuMWrUKCZMmICLi4thmTIzM9Fa4+DgQEpKCg4ODjg4OBiWR0BCQgL169cnKyuLI0eOFLjTcUTuPO7KxObAAOA5pdSRu28vmjVhHnT+/Hm6dOlC9+7dqVChAgcPHuSzzz4ztEibTCYWL17MmjVr0Frj7OwsRdoGVKhQgW3btnHnzh26du2aswpUiNzKzayPPVprpbWup7VucPdtozXC2SKTyURQUBCenp788ssvTJ06lYMHD9KoUSOjo2FnZ4eHhwceHh6yf7SN8fLy4rvvvuPQoUO8/PLLmEwmoyOJPESmADyCqKgoWrZsyZAhQ/Dz8yMiIoJ33nnH8P0xfvvtNy5cuABAkyZN8Pb2NjSPeLAuXbowYMAAtmzZwqxZs4yOI/IQKdS5cOfOHT766CMaNGhAdHQ03377LZs3b6ZmzZpGRyMzM5Off/45Z0m4sG0LFy7kpZde4u2335b/ZyLXZJvTv7F3714CAgKIjo6mb9++TJ8+nXLlyhmaSWvNhQsXKFOmDI6Ojly7do1ixYrJeHQecePGDfz8/EhMTGTv3r1yQIMAZJvTf+TGjRsMGTKEFi1acPv2bTZu3MjSpUsNL9IAiYmJzJs3j6NHjwLZ22xKkc47SpQowaJFi0hLS6NXr15y5qL4W1KoH2DNmjV4enoyZ84cRo4cSWRkJO3btzcsj9aazZs3s3v3bgDKly9Pt27dqF+/vmGZxONp2rQpixcvJjIyksGDB8tcd/FQUqj/4MKFC3Tr1o0uXbpQpkwZ9u/fz/Tp0ylatKjVs5hMJi5evAhknwCelJTEzZv/vyC0bt26ODo6Wj2XMJ8ePXrw73//m0WLFvHuu+8aHUfYMq212d8aNWqk85KsrCw9Z84cXaJECe3o6KinTJmi09PTDc20detWPXHiRH3r1i2ttdYmk8nQPMIysrKytK+vr7azs9NbtmwxOo4wEBCq/6KmFvgr6t9++41WrVoxaNAgfHx8OH78OO+++67Vx3xv3LhBcHAwiYmJADRo0IBu3brlnLwi86LzJzs7OzZu3EitWrXo3bs3586dMzqSsEEFtlCnp6czadIk6tWrx/Hjx/nmm2/YunWrVTcvSk9P58aNGwA4ODgQExPD5cuXgewbhJ6entjb21stjzBG2bJlWbt2Lenp6bRt2/a+IS6jLD2+FPcZ7thNsMN9hjtLjy81OlKBViAL9f79+/Hx8eFf//oXnTt3Jjo6mtdff92qV61aa+bOncvGjdmLPJ2dnRk9erRM1SqgnnzySb744gtOnDhBnz59DL25uPT4UgLXBXL2xlk0mrM3zhK4LlCKtYEKVKFOTk5m2LBhNGvWjBs3brBu3TpWrFhBhQoVrNJ/bGwsGzZsQGuNUopnn32W5s2b53xdrp4LNn9/f95++202btzIl19+aViO8VvGk5KUAnHAmezPpWSk8P7W9w3LVNAZu/bZitavX8/gwYM5f/48Q4cOZfLkyRQrVszi/d66dQsnJyfs7e25evUqv/32G8888wxFixaVq2fxP6ZOnUpMTAxvv/02FStWpGfPnhbpx2QyceHCBQ4ePEhUVBQpKSmcOnWK8PBwzp09B/eO0ywLvJX94bkbMn5ulHy/MjEhIYERI0awcuVKvLy8mD9/Pk2aNLFK3xcvXmT+/Pl07doVLy8vsrKyUErJKSvioW7evImHhwc3btzg2LFj1KhR4x+1k5GRQXR0NIcPH+b27ducOnWK0NBQYmJiuHbt2n27+BUqVAh3d3fKli3LkZtHSK2SCqWA0sDdbdXdSrhxZuSZx3594sEetjIx315Ra61ZsGABY8aMISUlhUmTJjF27FiLnhWotSYsLAxHR0fq1q1L+fLladGiBZUqVQJkaEPkTvHixQkODqZNmzZ0f+459phMOMfHQ7VqMHky9OuX89jk5GQOHz7MtWvXOH36NGFhYRw7dozU1FTOnDlDVlZWzmOdnJyoXLkylSpVolevXtSuXZsKFSrg7u6Ot7d3zkyne2PUKRkpOc91dnBmcuvJ1vuPIO6TL6+oT548SWBgIDt27KBly5bMnTuXJ5980mL9paam4uTkBMCCBQtwcXGhV69eFutPFAwbxozh5WnT6AiMJ3u4+GihQhx48knuuLoSGxvL+fPn73tO8eLFcXV1pVGjRnh4eFChQgXKly9PkyZNqFKlSq5vmC89vpT3t77PuRvnqFaiGpNbT6Zf3X5//0Txjz3sijpfFeqMjAw+++wzJkyYQJEiRfj000954403LDrUsGvXLn799VdGjx6Ng4MDqampFClSROY9i8fn7s6Ys2eZ9qdPF1OKOr6+eHp6UrlyZYoXL06zZs3w8vKiVKlShkQVj69ADH0cPHiQgIAAjh07Rrdu3Zg5cyYVK1Y0ez8pKSkcOnQIHx8fihUrRo0aNVBK5UynundlLcRjO3eOTwA3oATQAKgBFAU4eNC4XMLq8vxdrVu3bjFy5EiaNm3KlStXWLNmDatWrTJrkdZak56eDkBaWho7duzg9OnTAFSpUoWnn37aomPfooCqVg17YBjwClCPu0W6WjUjUwkD5OlC/dNPP+Hl5cUXX3zBoEGDiIqKolOnTmbtQ2vNN998w88//wxkrxgcPXq07FwnLG/yZHB2vv9zzs7ZnxcFSp4s1ImJifTt25cXX3wRFxcX9uzZw+zZsylRooRZ2r98+TIH7/5pqZTCw8MDd3f3nK9bY/61EPTrB3PngpsbKJX9fu7c+2Z9iIIhT41Ra6357rvvGD16NMnJyXz00Ue8++67ZtnuMysrCzs7O5RSREVFsXv3bry9vXF2dr5v9aAQVtWvnxRmkXcKdUxMDG+++SZbtmyhWbNmzJs3D09PT7O0nZCQwNKlS+nWrRvu7u40btwYPz8/nP/8Z6cQQhjA5oc+MjMzmTp1KnXr1uXAgQPMnj2b3bt3P1aR1loTGxvL2bNnAShdujTVqlXLuSHo5OQkRVoIYTNs+oo6LCyMgQMHcuTIETp16sRXX31F5cqV/3F79zZDguy9P1xdXXFzc8PBwYEePXqYK7YQQpiVTV5R3759mzFjxtC4cWMSEhJYtWoVISEhj1WkDxw4QFBQECaTCaUUvXv3ltWDQog8weYK9aZNm/D29mbatGkMHDiQ6OhounXr9sgr/bKysoiIiODOnTtA9snPlStXzpkPXbZsWTm5WwiRJ9hMob5y5QoDBgygbdu2ODo6snPnTubMmUPJkiUfqZ17KwQvXrzIqlWriIqKAqBOnTp06tQp52grIYTIKwwv1FprlixZQp06dVi+fDkffPABR44coWXLlo/UjslkYuXKlezYsQOAypUr4+/vT4MGDcwfWgghrMjQQh0bG0v79u0ZMGAAtWvX5vDhw0yaNCnXV72HDx9m69atQPYhoY6OjjkzN5RSuLu7y+ZIQog8z5BCnZmZyeeff463tzd79+5l5syZ7NmzB29v74c+78yZMzlLuSF7/vOZM2dyhjs6deoki1OEEPmO1afnHTlyhIEDBxIWFkaHDh2YPXs2VatWfeBjr169yuHDh2nZsiWFCxcmMTGR48eP8/TTT+Pi4kLbtm3ltBQhRL5ntSqXkpLCuHHj8PX1JT4+nhUrVrB27dr7inRqaioHDx7k+vXrANy4cYN9+/aRkJAAgI+PD2PGjMHFxSU7vBRpIUQBYJVKt3XrVurWrcvUqVPx9/cnOjqanj17YjKZOHHiBBcvXgQgPT2djRs3EhMTA4Cbmxvjxo2j2t1tHQsVKiRjzkKIAseihfrq1av4+/vz/PPPY2dnx7Zt25g4cSK3bt3KeUxISAjh4eFA9lznkSNH4uubfciBvb29WTZcEkKIvOxvj+JSSi0AOgCJWuuH3+27y1cp/XaZMoxIT+d6SgqDBg3i008/xcnJia+//poiRYrg7+8PZG9ZWrp0aTn4VQhRoD3uUVzfArOA73Lb4e9A3ytX8LOzY1zv3lC9es6Uu86dO9+3n3O5cuVy26wQQhRIuTrcVinlDqzP7RW1nVL6E2A0cKVKFfShQ5QvX17Gl4UQ4i889inkuSnUSqlAIBDAERr98YFhEPZIifOeMsAVo0NYmbzmgkFes/W4aa3LPugLFrmiVkqF/tVvhvyooL1ekNdcUMhrtg0yEVkIIWycFGohhLBxf1uolVLfA78CTyql4pVSb+Si3bmPnSxvKWivF+Q1FxTymm1ArsaohRBCGEeGPoQQwsZJoRZCCBsnhVoIIWycFGohhLBxUqiFEMLGSaEWQggbJ4VaCCFsnBRqIYSwcVKohRDCxkmhFkIIGyeFWgghbJwUaiGEsHFSqIUQwsZJoRZCCBuXm1PIH1mZMmW0u7u7JZoWBdTxS8dJz0qHO4ADOZcYhe0LU7d8XSOjCWEWYWFhV/7qzESLFGp3d3dCQ0Mt0bQooNQIBeuAi0AF4FWgCGSQQei/5XtN5H1KqbN/9TUZ+hA2LTMzk6lTp6KCFMQBjYAE4HtAQ7US1YwNKIQVWOSKWghzCAsLY+DAgRw5cgTvJt6cKHqCTL9M0EA4OBxyYPLHk42OKYTFyRW1sDm3b99mzJgxNG7cmISEBFatWsWxfcdY8NkC3Mq5QQdwqutE1i9ZlL34wCE9IfIVi5yZ6Ovrq2WMWvwTmzZtYtCgQZw5c4bAwEBefvllqlatSv369e97XHJyMg0aNCAhIYFff/2VevXqGZRYCPNQSoVprX0f9DW5ohY24cqVKwwYMIC2bdvi6OjIzp07mT17NlevXiUuLu5/Hl+sWDGWLVsGwIABA0hJSbF2ZCGsRgq1MJTWmsWLF1OnTh2WL1/OBx98wJEjR2jZsiX29vb079+f9u3bP/C5Tz31FD/88APHjx8nICAAk8lk5fRCWIcUamGY2NhY2rVrxyuvvELt2rU5fPgwkyZNQmvNTz/9RHp6Ovb29tjb2/9lGy+++CITJkxg2bJljBw50nrhhbAiKdTC6jIzM5k2bRre3t7s27ePmTNnsmfPHry9vYHsAh4eHs6VK1dy1d7777/PU089xVdffcWWLVssGV0IQ8jNRGFVhw8fJiAggLCwMDp06MDs2bOpWrXq/zzu1q1bFC1aNNft3rx5k6ZNm5KQkEBoaCjVq1c3Z2whLO6xbiYqpYoopQ4qpY4qpSKVUhPMH1HkdykpKYwbNw4/Pz/i4+NZsWIFa9euva9Inzhxgvj4eIBHKtIAxYsX58cffyQzM5NWrVqRlJRkzvhCGCo3Qx93gOe01vWBBkA7pVQTi6YS+crWrVupW7cuU6dOxd/fn+joaHr27IlSKucxJpOJbdu2sW3bNv7pX3m1atVi+vTpxMXF8cYbb/zjdoSwNX9bqHW2W3f/6XD3TX4CxN+6evUq/v7+PP/889jZ2bFt2zbmz5+Pq6vr/zzWzs4Of39/unbtel8Bf1Svv/46kyZNIjg4mM8+++xx4gthM3J1M1EpZa+UOgIkApu11gce8JhApVSoUir08uXLZo4p8hKtNd9//z0eHh4sXbqU9957j2PHjvHss8/+z2NNJhNHjhxBa42zs/MjD3k8yPjx4+nevTvvvvsuixYteuz2hDBargq11jpLa90AqAI0Vkp5P+Axc7XWvlpr37JlZVlvQXX27Fleeukl+vbti7u7O2FhYfz3v//FycnpgY+PjIxkzZo1nD592mwZlFLMnTuXChUqMHToULO2LYQRHml6ntY6CdgBtLNEGJF3ZWVl8cUXX+Dl5cWuXbuYMWNGrpZ2e3t78+qrr1KzZk2z5nF1dWXz5s04ODjQuXNnbt++bdb2hbCm3Mz6KKuUKnn3YyfgeeCEhXOJPOTYsWM0a9aMkSNH0rJlSyIjIxkxYsRDF6okJiaSnJyMUspiU+k8PT35/vvviYyMpEOHDrJyUeRZubmirghsV0odAw6RPUa93rKxRF6QmprK+PHjadSoEbGxsSxbtowNGzbg5ub20OdprVm1ahXLly+3+MyMtm3b8uabb7Jjxw4mTJCZpSJvkgUv4h/Zvn07gYGBnDp1Cn9/fz777DNKly6d6+cnJiaSlZVFxYoVLZgym8lkonv37qxZs4affvqJtm3bWrxPIR6V7J4nzOb69esMHDiQ5557DpPJxObNm1m4cGGui/SlS5cAKFeunFWKNGRP/Vu8eDF169alZ8+ehIWFWaVfIcxFCrXIFa01K1euxMPDg2+//ZaxY8dy/Phxnn/++Vy38fvvvxMUFMTJkyctmPTBXFxcWL58ORkZGXTt2pVbt279/ZOEsBFSqMXfiouLo2PHjvTq1YvKlStz6NAhPvnkE5ydnR+pnRo1avDCCy9Qo0YNCyV9uHu/ZOLj43nttddk5aLIM6RQi7+UlZXFrFmz8PT0ZNu2bXz22WccOHCAhg0bPlI7qampZGZmUqhQIZo3b/7Q2SCW1rNnTz7++GNWrVrFmDFjDMshxKOQQi0eKCIighYtWjBs2DCaNWtGREQEb7/9NoUKPdp5yPeGTBYvXmwzV7Bjxozh2WefZfr06axcudLoOEL8LSnU4j5paWn861//wsfHh5MnT7J48WJ+/vnnfzzXWSnFU089ha+v72Pt4WFOSilCQkKoU6cOgwYNMmTMXIhHIYVa5Ni9ezcNGjRg0qRJ9OrVi+joaPr37/+PC2x6ejoAderUoW7duuaM+thKlCjBhg0bsLOzo0OHDrk+pEAII0ihFiQlJTFo0CBatmzJnTt3+Pnnn1m8eDGPs2fLhQsXmDFjBrGxsWZMal7Vq1dn0aJFnDx5kk6dOtnM0IwQfyaFuoALDg7G09OT+fPn8/bbbxMREWGWBSHFihWjevXqlCtXzgwpLadDhw6MGTOGffv28d///tfoOEI80KPdGRL5xvnz5xk6dChr1qyhQYMGrF27Fl/fBy6KeiQmkwmlFMWKFaNHjx5mSGp5n3zyCRcuXODDDz+kZs2a9O7d2+hIQtxHrqgLGJPJRFBQEJ6envz888988sknHDx40CxFGuCXX34hJCQkTw0j3NsWtWbNmrz22muEh4cbHUmI+0ihLkCioqJo2bIlQ4YMwc/Pj4iICMaOHYuDg4NZ2tda4+LiQtGiRW1mhkduOTs7s3r1ahwdHenfvz83b940OpIQOaRQFwB37txhwoQJNGjQgOjoaBYuXMjmzZvNuge01hqlFC1btuSFF14wW7vWVK9ePYKDg/n999/p378/WVlZRkcSApBCne/t3buXhg0b8tFHH9G9e3eio6Px9/c36xXvrVu3WLhwIQkJCQB57mr6j5577jkmT57MunXrGDRokNFxhACkUOdbN2/eZMiQIbRo0YLbt2+zYcMGli1bZpFZGLdv385XJ6i88847tG7dmgULFrBu3Tqj4wgh+1HnRz/++CNvvfUWFy5cYMSIEUyaNMksh8Y+jMlkws4u//zeT01NpUWLFpw6dYp9+/bh5eVldCSRz8l+1AXExYsX6d69O507d6ZUqVLs37+f6dOnW6xIHz58mL1796K1zldFGsDJyYmQkBDs7Oxo3bo1ly9fNjqSKMDy109XAWUymZg7dy4eHh6sX7+e//73v4SFhdG4cWOL9nvmzBliYmLy1FS8R1GtWjWCgoK4fPkyr7/+upy5KAwjC17yuN9++43AwEB27dpFq1atmDNnDk888YRV+u7cuTMZGRn57mr6j3r37k1iYiIjRoxg4sSJfPTRR0ZHEgVQ/v0Jy+fS09P5z3/+Q/369Tl27Bjz589n27ZtFi/SCQkJLFmyhLS0NJRSFC5c2KL92YJhw4bRt29fJkyYwOzZs42OIwogKdR50P79+2nUqBEffvghnTp1Ijo6mjfeeMMq0+LS0tK4evVqgTrKSilFUFAQ7u7ujB07lhMnThgdSRQwUqjzkOTkZIYPH06zZs1ISkpi7dq1rFixggoVKli0X611zhxpd3d3hg4dSpkyZSzap60pXrw4O3fuxNnZmU6dOnHjxg2jI4kCRAp1HrF+/Xq8vLyYNWsWb731FpGRkbz88stW6fvXX39l3rx5OTMfjDxKy0jVqlVj1apVnD59mtatW8vKRWE1Uqht3KVLl+jVqxcvv/wyxYsXZ+/evcycOZPixYtbLYOPjw/t2rUrcFfRD9KyZUtGjhxJWFgYH374odFxRAEhhdpGaa1ZsGABHh4erFmzhkmTJhEeHk7Tpk2t0v/FixdZt24dJpOJIkWK4Ofnl6eXhpvTJ598wquvvsqUKVMICQkxOo4oAKRQ26CTJ0/SunVr3njjDby9vTl69CgffPCBVWdYnD9/nlOnTpGcnGy1PvMKOzs7vv76a3x9fenXrx979uwxOpLI56RQ25CMjAymTJlCvXr1CA8PZ86cOezYsYM6depYpX+tNUlJSQD4+voyZMgQSpQoYZW+85oiRYqwePFi7O3t6du3b85/NyEsQQq1jTh06BC+vr6MHz+eF198kaioKAIDA626mGTLli3MmzcvZ4MlR0dHq/WdF9WpU4eQkBAuXrxIv3795OaisBgp1Aa7desWo0aNokmTJly5coWQkBBWr15NpUqVrJ6lYcOGtGjRAmdnZ6v3nVc9//zzfPHFF2zcuJGBAwcaHUfkU1KoDfTTTz/h7e3NjBkzGDRoEFFRUXTu3NmqGc6fP8/evXsBKFOmDE2bNpWbho9o8ODBtGnThm+//Zbly5cbHUfkQ1KoDZCYmEi/fv148cUXcXJyYvfu3cyePduQ8eBjx45x6NAh0tLSrN53fqGUIjg4GF9fXwYOHEhkZKTRkUQ+I/tRW5HWmu+++47Ro0eTnJzM+PHjee+996w+Fqy1Ji0tDScnJ7Kysrhz544Md5jB+fPn8fX1xcHBgf379xsyfCXyLtmP2gbExMTQpk0b/P39qVOnDkeOHOGjjz4y5IbdunXrWLRoEZmZmdjb20uRNpPKlSvzzTffcOHCBbp06SI3F4XZ/G2hVkpVVUptV0pFK6UilVIjrBEsv8jMzOTTTz+lbt26HDhwgNmzZ7N79248PT0Ny+Tp6Um9evUK7FJwS3rxxRf5z3/+w8GDB2XlojAfrfVD34CKgM/dj4sBvwOeD3tOo0aNtNA6LCxMN2zYUAO6U6dOOi4uzrAs8fHxOjIy0rD+CxKTyaQDAgI0oL/66iuj44g8AgjVf1FT//aKWmt9UWsdfvfjZCAaqGyZXxv5w+3btxkzZgx+fn5cvHiRVatWERISQpUqVQzLtH37drZv3y6nlFiBUoqZM2fyxBNPMGrUKMLDw42OJPK4R7qZqJRyB3YB3lrrm3/6WiAQCFCtWrVGZ8+eNWPMvGPTpk28+eabxMbGEhgYyCeffELJkiUNyaK1Jisri0KFCpGSkoLWGhcXF0OyFES///47Tz/9NEWLFuXQoUOUKlXK6EjChpnlZqJSqiiwGhj55yINoLWeq7X21Vr7li1b9p+nzaOuXLnCK6+8Qtu2bXFwcGDnzp3MmTPH0CK9atUqgoOD0Vrj7OwsRdrKnnjiCUJCQoiLi6Nr165kZGQYHUnkUbkq1EopB7KL9FKtdbBlI+UtWmuWLl2Kh4cH33//PR988AFHjx6lZcuWhuZSSlGlShWqVatmaI6CrlmzZkyZMoWdO3fy+uuvGx1H5FF/O/ShspepLQKuaa1H5qbRgjKP+syZM7z55pv88ssvPPXUU8ybN4+6desamik+Ph47OzuZw2tjunXrRnBwMCtWrKBnz55GxxE26HGHPpoDA4DnlFJH7r69aNaEeUxmZiaff/45Xl5e7N27ly+//JK9e/caXqRNJhNr1qzhl19+4VHuPQjL+/7772nWrBmvvfZazpJ9IXJLViY+oiNHjjBw4EDCwsLo0KEDs2fPpmrVqoZmuvf/UCnFlStXcHZ2lkUsNujixYt4e3ujlCIiIsLiZ12KvEVWJppBamoq7777Lr6+vsTFxbFixQrWrl1reJHOzMxkxYoV7Nq1C8jeWEmKtG2qWLEiCxcu5ObNm7zyyitkZmYaHUn8wdLjS3Gf4Y7dBDvcZ7iz9PhSoyPlkEKdC1u3bqVu3bo5RzBFR0fTs2dPm9hlzt7eHicnJ4oUKWJ0FJELHTt2JCgoiM2bNzN27Fij44i7lh5fSuC6QM5ePIu+qTl74yyB6wJtplgXMjqALbt27Rpjxoxh4cKF1KpVi23btvHss88aHYvk5GS2b99OkyZNKFeuHB07drSJXxoid9544w327NnD9OnTqVixIu+8847RkQoMrTUJCQmcOnWKmJiYnPerd6wm43oG3AE8gF6QkpHC+1vfp1/dfkbHlkL9IFprVqxYwYgRI7h27RrvvfceH374IU5OToZlyszMJDU1lWLFimFvb090dDTVq1enXLlyUqTzoNmzZ3Pw4EH+/e9/88ILL9CgQQOjI+UbmZmZxMXF3VeI772PiYkhJSUl57H29va4ubmRkZUBlYDaZG+acde5G+esnv9B5Gbin5w7d47BgwezceNG/Pz8mDdvHvXr1zc0k9aaoKAgXF1d6dOnD5D9zViokPyezcsSEhJytkU9cOAA5cqVMzpSnpGWlkZsbOz/FOFTp05x5syZ+xYXOTo6UrNmTWrWrEmtWrWoWbMmly9fJjU1lYkTJ+Lo6Ei1KdWIS4v7n8FgtxJunBl5xiqv6WE3E+Un/a6srCxmzZrF+++/D8D06dMZNmyYYTvMnTt3jqioKNq2bYtSiqeffvq+lYVSpPO+ChUqEBwcTIsWLXj22Wc5fPiwVU+at3XJyckPvCo+deoU8fHx901BLV68OLVq1aJBgwZ07979vsJcqVIlYmJi2LBhAwEBAbi4uHD+/HmSk5NxcHAAYEqHKQSuCyQl4/+vtp0dnJncerLVX/eDyE87cPz4cQYOHMjBgwdp3749QUFBuLm5WT1HamoqhQsXxt7ensTERCIiImjevDnFihUzfI62sIzGjRszfvx4JkyYwHvvvce0adOMjmQ1WmuuXr36wEIcExNDYmLifY8vV64cNWvWpFWrVvddHdeqVYvSpUvfNwSYkpLCgQMHKFSoEHZ2dpQoUYLy5cuTlpaGi4sLlSvfv6/cvXHo97e+z7kb56hWohqTW0+2ifFpKOBDH2lpaUyaNImpU6fi6urKjBkz6NOnjyFjvpcuXWLevHl06dIFLy8vMjMzUUrJntEFxNChQ/nqq69YsmQJ/frZRnEwB5PJxIULF/7yyvjmzf/fNujetgd/LMD33teoUYPixYs/tK+kpCTS09MpV64caWlpTJs2jTZt2uDn52fpl2kWDxv6KLCFeseOHQQGBnLy5EleffVVpk2bRunSpa3Wv9aao0ePUqhQIby9vTGZTGzbto0GDRpQpkwZq+UQtiEjI4NnnnmG0NBQNmzYwAsvvGB0pFzLyMjg7NmzDxwvPn369H3ncRYqVIjq1av/TyGuWbMm1atXf+Rppvfu1Witc2bR3LuPc+fOHUNOUPqnpFD/wfXr1xk7dizz58+nRo0azJkzh+eff95q/f/xm2fBggUUKVKEvn37Wq1/YbtOnz6Nr68vzs7OHDlyxKZ+YaempnL69OkHXhWfPXv2vmPHnJyc/qcI3/u4atWqZru/8ssvv3D69GnefPNNlFLExsZSsmRJXF1dzdK+tUmh5v+3/Rw2bBhXrlxh9OjRfPTRR1Zdxbd371727NnD6NGjcXBwICUlBScnJ5leJ3IcOnSIp59+mubNm/PLL79Y9aZxUlISoaGh/Pbbb9y4cYOYmBjCw8OJj4/nypUr9z22ZMmS1KpVi+rVq1OrVi2eeOKJnGJcoUIFi3xPx8fHs2/fPrp27UqhQoWIjIwkMTGRli1b5oshwgI/6yM+Pp4hQ4awbt06fHx8+Omnn2jYsKHF+01NTSU8PJx69epRrFgx3NzcSE9PzzllRZZ6iz/z8/Njzpw5+Pv707t3b1atWmW2trXWnDlzhmPHjuUU4v379xMbG8u1a9e4evXqfY+vUKECrq6ueHh40KZNG2rWrEl0dDTlypVj6NChAHzzzTc4ODjwyiuvALB69WqKFStGmzZtAPj1118pXrw4Xl5eAMTFxeHi4pJziILW+i+LemZmJqdOnaJy5coUK1aMO3fuEB8fz7Vr1yhXrhxeXl457eZ3+bpQm0wmgoKCeO+998jMzOSzzz5jxIgRFr1K+eOpKqmpqWzZsgUnJyd8fHyoUqWKocdxibzh1VdfJTg4mNWrV7PozTd59eef4dw5qFYNJk+Gh9xszMzMJDo6msTERGJiYjh06BDHjx8nLS2NmJgYbt26lfNYOzs7ypcvT+nSpenWrRu1a9emTJkyuLu74+fn98CDJm7evHnfMEeTJk2ws/v/ycdOTk73jQuHh4dTqVKlnIL6ww8/ULNmTTp16gRkT4P19PSkXbt2OV+vVasWDRs25ObNmyxfvpy2bdvStGlTatSowahRowrkX6D5dugjMjKSgIAAfv31V1544QW+/vpratSoYdE+tdZ8++23lC5dmo4dOwLZf04adcqLyLvS0tJo17AhB06cYC/gc+8Lzs6kzprF2aZNOX36NOHh4Rw6dIiMjAxOnz7N6dOn71vs4eDgQKlSpfDx8eGJJ56gbNmylC9fnhYtWlCjRg2rzNs2mUw5xTwuLg5HR8ecxT07d+6kfPny1KlTB601CxYswNPTk6ZNmwLZ6wkqV66cL4Y2/k6BGqO+c+cOkydP5uOPP6Z48eJMnz6d/v37W+y38LVr13JuAgHs3r0bFxcXfHx8/uaZQjxcYtWqNIqPJxV4GYgDTgAXgD/+1BYuXJjatWtTp04dKlasSIkSJWjRogWenp4FpsjlBwVmjHrPnj0EBARw4sQJ+vfvz+eff44lzm80mUwopVBKcfz4cXbt2oWHhwcuLi48/fTTZu9PFEzlzp9nPtANWAM8CTQFnIGmQUHUq1eP6tWrU758+fuGH0T+ky8K9Y0bNxg3bhxz5szB3d2dn3/+mbZt21qkr0uXLrFs2TK6dOmCu7s7jRs3xsfHRw6OFeZXrRptz57lJn/agsLNDd5806BQwgh5/tdwSEgIHh4ezJs3j9GjRxMREWHWIq21Ji4ujnPnsnfRKlWqFBUqVMj5c9LJyYlixYqZrT8hckyeDM7O9/+QOjtnf14UKHm2UF+4cIGuXbvStWtXypcvz4EDB5g2bZrZrmz/OHa/Zs0aduzYAWTfnOnTp4/hJ7uIAqBfP5g7N/sKWqns93PnPnTWh8if8tzNRJPJxNy5cxk3bhzp6elMmDCBUaNG5eyCZQ6hoaGEhoYSGBiInZ0dly5dwtXVVXY2E0JYTL45MzE6OppnnnmGwYMH4+vry/Hjxxk7duxjF2mTyUR0dDR37twBoGjRopQpUybn3+XLl5ciLYQwTJ4o1Onp6UycOJEGDRoQGRnJwoUL2bJlC7Vq1TJL+xcvXmTFihVERkYCUKdOHbp3727oiS5CCHGPzc/62LdvHwEBAURFRdGnTx9mzJjx2CdhaK0JCQmhVKlStGrVikqVKjFgwACqV69uptRCCGE+NntFffPmTd566y1atGjBrVu32LBhA8uWLfvHRTo9PZ3Y2Fgge99bOzu7nEUwSilq1qwpc1GFEDbJJivT2rVr8fT0JCgoiOHDhxMZGcmLL774WG1u27aNJUuWkJqaCkDnzp155plnzBFXCCEsyqYK9cWLF+nRowedOnWiVKlS/Prrr8yYMYOiRYs+cltXrlxh0aJFXL58GYCnnnoKf3//R96YXAghjGYThVprzfz58/Hw8GDdunVMnjyZsLAwnnrqqUdqJzk5OWerRicnJ27evJlz1I+rqytVq1YtkDtvCSHyNsML9e+//86zzz5LQEAADRs25NixY4wfPz5XU+601jlDGffmV2/evBkAFxcXhg4dSs2aNS2aXwghLM2wQp2ens7kyZOpV68eR48eZf78+Wzbto0nnnjioc/LzMzM+TgkJIRvv/0WyN5bt2PHjjkblgNy9SyEyBcMmZ534MABBg4cSEREBD169ODLL7+kQoUKD3zsH0+A2LdvH7t27eKdd97B3t4eDw8PqlatmvOY2rVrW/NlCCGEVVj1ijo5OZnhw4fTtGlTkpKSWLt2LStXrvzLIn3q1Ck+/fRTrl+/DkClSpXw8/PL2Rjdw8MDPz8/uXIWQuRrVivUGzZswMvLi1mzZvHWW28RGRnJyy+/fN9jrl69SlBQEDExMUD2DcDatWvnnDHo7u5O69atZeaGEKJAsXihvnTpEr1796ZDhw4UL16cvXv3MnPmTIoXL05GRgZLly4lLCwMgOLFi1O0aNGchSelS5emS5culC5d2tIxhRDCZv1toVZKLVBKJSqlInLdalgY2s2NhYGBeHh4EBISwsSJEwkPD+fmzZvs3LkTyN4yVGuds6Wog4ODLOUWQog/+dttTpVSLYFbwHdaa+/cNFpXKV0O2AY0dHNj8PvvExAQAEBwcDBOTk60b9/+8ZILIUQ+8lhnJmqtdyml3B+lw0jgHPA14J6Swnl7+5yZGV27dn2UpoQQosAz2/Q8pVQgEAjgABwCngD05cuo1183VzdCCFHg5OqEl7tX1OtzO/RRVCld5+7HGZB+DI7/84h5QhngitEhrExec8Egr9l63LTWZR/0BYsseLkNYaF/MdaSHymlQv9qbCm/ktdcMMhrtg2G7/UhhBDi4XIzPe974FfgSaVUvFLqDcvHEkIIcU9uZn30+Qftzv0Hz8nLCtrrBXnNBYW8ZhuQq5uJQgghjCNj1EIIYeOkUAshhI0za6FWSrVTSv2mlDqllHrXnG3bIqVUVaXUdqVUtFIqUik1wuhM1qKUsldKHVZKrTc6izUopUoqpVYppU7c/f/d1OhMlqaUGnX3+zpCKfW9UirfbVv5oL2MlFKllFKblVIn7753NTIjmLFQK6Xsga+A9oAn0Ecp5Wmu9m1UJvC21toDaAK8VQBe8z0jgGijQ1jRF8DPWus6QH3y+WtXSlUGhgO+dxe62QO9jU1lEd8C7f70uXeBrVrr2sDWu/82lDmvqBsDp7TWp7XW6cByoJMZ27c5WuuLWuvwux8nk/3DW9nYVJanlKoCvATMNzqLNSiligMtgW8AtNbpWuskQ0NZRyHASSlVCHAGLhicx+y01ruAa3/6dCdg0d2PFwGdrZnpQcxZqCsDcX/4dzwFoGjdc3eZfUPggMFRrGEGMBYwGZzDWmoAl4GFd4d75iulXIwOZUla6/PAZ2Tvr3YRuKG13mRsKqspr7W+CNkXY0A5g/OYtVA/6DysAjH3TylVFFgNjNRa3zQ6jyUppToAiVrrMKOzWFEhwAcI0lo3BG5jA38OW9LdcdlOQHWgEuCilOpvbKqCy5yFOh6o+od/VyEf/qn0Z0opB7KL9FKtdbDReaygOdBRKXWG7OGt55RSS4yNZHHxQLzW+t5fS6vILtz52fNArNb6stY6AwgGmhmcyVouKaUqAtx9n2hwHrMW6kNAbaVUdaVUYbJvPKw1Y/s2R2WfqvsNEK21/tzoPNagtX5Pa11Fa+1O9v/jbVrrfH2lpbVOAOKUUk/e/VRrIMrASNZwDmiilHK++33emnx+A/UP1gKv3v34VeBHA7MAZtw9T2udqZQaCvxC9h3iBVrrSHO1b6OaAwOA40qpI3c/N15rvdG4SMJChgFL716EnAZeMziPRWmtDyilVgHhZM9uOowNLq1+XHf3MmoFlFFKxQP/Bj4GVt7d1+gc0MO4hNlkCbkQQtg4WZkohBA2Tgq1EELYOCnUQghh46RQCyGEjZNCLYQQNk4KtRBC2Dgp1EIIYeP+D8taYqSw2vMsAAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<Figure size 432x288 with 2 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "X = np.array([1, 1.2, 1.5, 1.8, 2.4, 3.3, 2.4, 1.5, 1.6])\n",
    "Y = np.array([1, 1.2, 1.5, 1.8, 2.4, 3.3, 2.4, 1.5, 1.6, 1.55, 1.8])\n",
    "\n",
    "_, ax = plt.subplots(2, 1, sharex=True, sharey=True)\n",
    "plot_pivots(X, peak_valley_pivots_detailed(X, 0.2, -0.2, True, True), ax=ax[0])\n",
    "plot_pivots(Y, peak_valley_pivots_detailed(Y, 0.2, -0.2, True, True), ax=ax[1])"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "c50e9932-656f-4bfd-a196-c09c87f63a69",
   "metadata": {},
   "source": [
    "Replicating this edge-case but in the other mode just to confirm expectations,"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "id": "50e5f740-6191-4584-92b4-a7d9a52f242f",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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XFwcf/vb39izZw+9evWiYcOGfPPNN6Smpt72/c7OzjRq1MioYXt7ezNu3Djq168PQGxsLHPnzjWukZaWRmJiInppV03TSpJ7qVEXAG+JyINAGyBUKdXE3IH4+Pjw2WefkZCQwNy5c6lVqxZvv/023t7ejBw5knvZ1VwpRY0aNXB1dQXg4YcfZvjw4UZTSkxMDNOnTzdq2JcvX+bq1avmvhVN0zSzumuiFpEkEdn3+8fpwHHA21IBubi4MGjQILZt28aBAwcYPnw4P//8M61ataJ169bMnDmTnJyce7qWk5MTdevWNZpO2rZty+DBg42Oxw0bNjBjxgyjhn3p0qV7vramaZq13NeoD6WUP7AVaCoi1//ntTHAGABfX9+gG+3E5nDt2jVmzZpFeHg4J06coEqVKowcOZJx48ZRt27dv3zdlJQUrl+/Tr169QAICwvD09OToUOHAkU17ipVquDgoGfaa5pmWXca9XHPiVopVR7YAowXkUV3+trbDc8rLhFh06ZNhIWFsXTpUkwmE7169SI0NJQePXrg6OhYrOvHxcXh4OCAr68vBQUFfPnll7Rs2ZIePXogIly9epVKlSrpWZSappldsYfnKaWcgYXAnLslaUtSStGlSxcWLlxIXFwc/+///T/27dtH7969adCgAf/617+4cuXKX76+v78/vr6+xvnTTz9NQEAAUNQROWHCBA4cOABAQUEB2dnZxbofTdO0e3Evoz4UMA04LiLfWj6ke1OnTh0++eQT4uPjmT9/Pj4+Prz77rt4e3vzwgsvGGOr/yonJyceeughatasCYCbmxu9e/c2mknOnDnDV199xfnz5wHIy8ujsLCweDelabdw/fp1du/eTXp6OlBUScjJydGjl8qQe6lRtweeB7oopQ78fjxu4bjumYuLC/3792fLli0cPnyYkSNHsnDhQlq3bk2rVq348ccfzVLzdXd3p1WrVnh6egJQtWpVHnvsMSORR0dH8+WXXxpl5efn618kzSwuXrzIqlWruHbtGgCnT5/miy++4MKFC0BRk93cuXON11NTUzly5Ah5eXlA0USwkvSzmJ2dTUZGhq3DsCv3Mupju4goEWkmIs1/P1ZaI7j71bRpU8LDw0lMTOSHH34gKyuLkSNH4u3tzdtvv82pU6fMVpaXlxedOnXCyaloAUIfHx/atm1LuXLlAFi9ejURERHGL4iubWv3IzExkU2bNgHQoEED3nnnHWrVqgVAtWrV6NGjB15eXkBRpeD69etGp/fp06f55ZdfyM3NBYoqEZ999pkxY/fkyZMsXbrUGKZ65coVzp49e8/JXEQoKCgwzq9evUpycrJxfvbsWY4fP26cx8TEsGvXLuN8zZo1rF692jifM2cOP//8s3E+c+ZMFi36bwvrkSNHSEpKuqfYSqtSOZyhYsWKhIaGcuTIETZt2kTXrl2ZMGECDRo0oFevXixfvtzsidPHx4fOnTsb5/Xq1SMgIMDoeJw9e/ZNP3wlqYajWd+JEyc4ePCgsdKkh4eH0Vnu5eV1U6WgQYMGjB07lgoVKgAQEBBASEgIHh5FC8LXqlXrpq+/du0aZ86cMSoZ+/fvJyoqyih748aNTJgwwfgZ3bRpE9OnTzdeX7JkCWFhYcb5unXrWLBggXG+Z88e4yEDRQ+O2NhY49xkMt0087hu3br4+fkZ5x07dqRTp05A0e/J8uXL2bdvn/H6pk2bSEhIuPdvZmkgImY/goKCxN4kJibKxx9/LLVr1xZA/Pz85PPPP5dLly5Zpfzt27dLdHS0iIiYTCaZMGGCbNu2zXjdZDJZJQ7NfhUWFsr169eNj7OysqxS7rVr1yQ+Pt44P3r0qKxevdo4j46OlmXLlhnnJ06ckN27dxvniYmJcvbsWeM8PT1d0tPTzRZfZmamXLt2zfj4008/lV27domISG5urixYsEASEhLMVp6tANFym5xaZhL1DXl5ebJgwQLp3LmzAOLi4iJDhw6VXbt2WS1Z5uXlycqVK+X48eMiIpKVlSXffPONHDt2zCrla/Zp0aJFMnHiRMnLy7N1KHatoKDA+B4lJyfLt99+K7Gxscb59OnTJSkpSURKVgXoTom6VDZ93ImzszPPPvssGzdu5OjRo4wZM4alS5fStm1bgoKCmDZtGllZWRaPoVevXjRu3BiA3NxcfH19qVixIlDUPhkREaE3UChjWrRoQdu2bXF2drZ1KHbN0dHR+B5Vr16dN954gwceeAAo+l0qKCgwlpE4duwYEydONJaKKKmd/GUuUf9RkyZNmDhxopEY8/PzefHFF/H29ubNN9+8qV3NkipVqsSzzz6Lt3fRzHyTyYS7u7vR5nj06FFmzZpl8QeIZn0nT540NtHw8/MjKCjIxhGVTDf6gnx8fBg9ejSVK1cGoFy5clSvXt34Xdq1axdfffWV0ZGanp5udLrOOTwH/+/9cfjEAf/v/ZlzeI4N7uTWynSivqFChQqMHTuWQ4cOsXXrVnr06MHEiRNp1KgR3bt3Z+nSpVYdteHj48Pw4cONziCTyURhYaHRGbRz504WL15cImsG2n+JCDExMcTExNzUuaaZT7169RgwYIDREVunTh0eeeQRo0a+fv16fvjhB6IORTF62WjiD8YjF4T4a/GMWT7GbpK1VXd4KUkuXrzIlClTmDx5MomJifj6+vLSSy8xatQoatSoYdPYtmzZwsWLFxkwYABQNI7W29tb/8lcQuTl5WEymXBzcyM3NxcHBwf9f2cjBw4cYP369XzyyydkHM+A68ADQNFyP/h5+hH3epxVYjHLWh/3ozQk6hsKCgpYtmwZ4eHhbNiwAWdnZ5577jlCQkJo166dzdf9yMrK4ttvvyUwMJDevXvbNBbt7kwmE9OmTcPDw4NBgwbZ/OenrMnNzWXnzp2sW7eOtWvXsm/fvqK/TN2AuoAv0AgoGqKOQmH6yDp/7ehEbSYnTpwgIiKCGTNmcP36dWO86pAhQ4xmCluIj4/H09OTSpUqce3aNS5evEjDhg11ErBT+/fvp3z58jRo0MDWoZR6IsKxY8dYu3Yt69atY8uWLWRlZeHk5ETbtm3p1q0b3bt3p//2/pzLOPen9+sadQmWkZHB3LlzCQsL49ChQ1SsWJEXXniBkJAQGjVqZNPY1q1bx+7du3n99dcpX768TWPR/is6OpqqVavi7+9v61BKveTkZNavX8+6detYt26dMdW+UaNGRmLu1KmT0cEIRR2JY5aPISv/vx327s7uRD4ZyZCHh1gl7jsl6jI3jtqcTCaTbN++XQYPHizOzs4CSHBwsCxatEjy8/NtElNBQcFNg/9//fVXSUlJsUksWpG8vDyZOHGiLFq0yNahlEpZWVmydu1aefvttyUgIEAAAaRKlSoyYMAAmTp16k0Tem4n6lCU+H3nJ+pjJX7f+UnUoSgrRP9f3GEcta5Rm0lycjLTpk1j0qRJJCQkUKdOHV566SVefPFFY+Ema8vMzOTf//43jzzyCMHBwTaJoSzLysrCzc0NBwcHMjIycHd315tQmIHJZOLw4cNGc8a2bdvIycnB2dmZDh06GLXmwMDAEvX91k0fVlRQUMCKFSsIDw9n7dq1ODs7069fP0JCQujQoYPV240zMjJwdnbG1dWVxMREYmNjad++vbEdmWYZWVlZTJ48mWbNmumHpBlcuHDBaMpYt24dly5dAuChhx6ie/fudOvWjY4dO9q0r6i47pSonawdTGnn5OREnz596NOnD7GxsURERPDjjz/y008/8fDDDxMSEsLQoUOt1n78x3JOnz5NTEwM7du3t0rZZZm7uzuBgYE277MoqTIzM9m6datRaz569ChQNBOxW7dudOvWja5duxqTxEo7XaO2gszMTH766SfCwsLYv38/FSpUYPjw4YwbN44mTcy+ofsdZWdnU65cOUSExYsX07RpUxo2bGjVGEork8nEtm3bCAgIoFKlSrYOp0QxmUzs37/fSMw7duwgLy8PNzc3Hn30UaPW/PDDD5eo5oz7oWvUNubh4cGoUaMYOXIku3fvJiwsjMjISH744Qc6d+5MSEgIffr0scqkhxuzG7Oysrh48aKxvKSI6OF8xZSens6uXbtwcHDg0UcftXU4du/cuXPGeOYNGzYY2+gFBATw2muv0a1bNzp06GD8zJZlukZtI5cvXzY6H+Pj46lduzZjxoxhzJgxxgLxlnZj2rKDgwNHjx7lwIEDPPPMM/oX4z5lZWXh7u4OFK31XLFiRf3Qu4Xr16+zefNmo5355MmTANSuXdvoAAwODrb5zF9b0Z2JdqywsJCVK1cSHh7O6tWrcXJyom/fvoSGhtKxY0er/cLv37+fAwcOMHz4cBwcHDCZTKX2T0xzSk5O5scff6R37948/PDDtg7HrhQUFBAdHW3Umn/99VcKCgpwd3fnscceM5ozmjRpoh9sFDNRK6WmA08Al0Sk6b0UqBP1X3Pq1CkmTZrE9OnTSUtLo0mTJoSEhPD8888bS6Ba0o3mj4KCAiZNmmTsO6ndXmFhIatXr6Z9+/a6XZqiTZ9vJOaNGzdy9epVlFIEBQUZnYDt2rUzliHV/qu4ibojkAHM0onaOrKyspg/fz5hYWHExMRQvnx5hg0bxrhx42ja9J7+C4olOzub1atX06xZM+rXr2/sj3dj66ayLj8/n23bttGhQ4cyP8zx6tWrbNy40WjOOH36NAC+vr5Gc0aXLl2oWrWqjSO1f8Vu+lBK+QP/0YnaukSEvXv3EhYWxvz588nNzaVjx46EhobSt29fq624tmPHDvbs2cNLL71ktMWWZfHx8cycOZPnnnuOBx980NbhWFV+fj67d+82as179uzBZDJRvnx5unTpYtSa9Voz908n6lIgJSWF6dOnExERQVxcHDVr1jQ6Hy09ljQuLo7ffvuNbt26AUW1KE9PzzL3i3hjaCNAWlqasTh9aSYi/Pbbb8awuU2bNpGeno6DgwOPPPKIUWtu3bq1Xqq1mKySqJVSY4AxAL6+vkHx8fF/LVrtjm60iYaHh7Nq1SocHBx4+umnCQkJoXPnzhZPnjempbdo0YIePXpYtCx7Ehsby8KFCxk+fDi1a9e2dTgWdeXKFTZs2GDUms+dK1pVrl69ekZi7ty5c5l4UFmTrlGXUmfOnGHSpElMmzaN1NRUGjduTEhICMOGDcPT09MiZRYWFhITE0OjRo0sVoY9ysrKYt26dXTv3r3UDV/My8tj586dRq05JiYGEcHT05Pg4GCjOaN+/fq2DrVU04m6lMvOzubnn38mPDycPXv24OHhwdChQwkNDbXokDERYdWqVXh7exMQEGCxcmwlKyuLvXv3WnWYpDWICMePHzcS8+bNm401mtu0aWPUmlu2bKk7kK2oWDMTlVLzgE5AVaXUeeAjEZlm3hC14ihXrhzDhw9n+PDhREdHEx4ezsyZM5k8eTIdOnQgNDSUZ555xuwjFAoKCrh06VKpHWp1/Phxtm3bRqNGjWy2AqK5XLp0yVijee3atcYazQ0bNmTkyJF069aNTp06WWUYqHb/9ISXUurKlSvMmDGDiIgITp8+TY0aNRg9ejRjxozBx8fHbOUUFhbi4OCAUorU1FTKlStX4psGcnJycHNzQ0RIS0vDy8vL1iHdt5ycHLZv327Umg8cOACAl5cXXbt2NZozbiwhoNmenplYhplMJtauXUt4eDj/+c9/UErRp08fQkJCCA4ONtuf9CaTiUmTJuHm5saIESNKbFPB7t272b59O2PGjLlpBxB7JyIcOnTIGM+8detWY43m9u3bG7MAAwMDjR25NfuiE7UGFA2zmzx5MlOnTiUlJYWGDRsSEhLC8OHDzTKr7ty5cyilzFpjt7bk5GSio6Pp0aOH3bfPJiUlGU0Z69evJzk5GYAmTZrctEaz3pKtZNCJWrtJTk4Ov/zyC2FhYfz666+4u7szZMgQQkJCaN68uVnK2LNnDzk5OTz66KN2X7tOTU3lzJkztGx56+3q7EVWVtZNazQfOXIEKFqj+Y/NGWVljebSRi9zqt3Ezc2NoUOHMnToUPbt20d4eDhRUVFMmTKFdu3aERISwrPPPvuXOwlFhAsXLpCdnW3myC3j119/5ciRIzRp0sSuZl7eWKP5Rq35xhrNrq6uPProowwbNoxu3brRrFkzvYBWKadr1BpQNNNuxowZhIeHc+rUKapVq8aLL77I2LFj8fX1ve/riQiFhYU4OTmRnZ1Nbm6uXS1aJCLk5+fj4uJCQUEBGRkZdhFfQkLCTWs0p6SkAEVrNN8YNqfXaC6ddNOHds9MJhPr168nPDyc5cuXA/DEE08QGhpK165d/1LN7eeff+b8+fO88sordjPNeOXKlSQmJjJixAibtkWnp6cbazSvXbvWWKO5Vq1aRmLu2rVrmV2juSzRiVr7S+Lj44mMjGTKlClcvnyZBg0aMG7cOF544YX7mj6ckpLCpUuXrL7t2J2cOHGCixcv8thjj1m1Db2wsPCmNZp37dpFQUEB5cqVu2mN5oceesju2/Y189KJWiuW3NxcFi5cSFhYGDt37qRcuXIMGjSI0NBQWrRocV/XOnPmDMePH6dnz55WHyaWmJhIRkaG1TecPXv2rNEBuGHDBmON5hYtWhi1Zr1Gs6Y7E7VicXV1ZfDgwQwePJgDBw4QERFBVFQU06dPp3Xr1oSGhvLcc8/h5uZ212slJiYSHx9PQUGBVRO1iLB+/XqysrJo0KCBRTvfrl69yqZNm4xa8401mn18fHjmmWeMLaf0Gs3avdI1au0vuXr1KrNmzSI8PJyTJ09StWpVRo0axUsvvUTdunXv+N78/HycnZ0xmUxcuXKFatWqWSxOk8mEyWTCycmJjIwMHBwczD6yIz8/nz179hi15j179lBYWEj58uXp3LmzUWvWazRrd6KbPjSLERE2btxIWFgYS5cuRUTo3bs3ISEh9OjR4441182bN7Njxw5CQ0MtMuLCZDIxZ84cPDw86Nu3r9mSpIhw6tQpIzFv3LjRWKO5VatWRmJu06aN3XSeavZPN31oFqOUIjg4mODgYBISEozOx8cff5x69eoxbtw4RowYQZUqVf703latWuHh4WGxYXEODg7UrVsXDw+PYifp1NRUNmzYYCTnG+ut161bl8GDB9OtWze6dOmi12jWLELXqDWzy8vLY9GiRYSHh7Nt2zbc3NwYOHAgoaGht539l5qayqZNm+jdu/c9tXXfycmTJ/H09CzWind5eXns2rXLSMzR0dGICBUrVjTWaO7evbteo1kzG12j1qzKxcWFgQMHMnDgQA4dOkRERASzZ89mxowZtGrVitDQUPr373/TpI0LFy5w9uxZsrKyipWo8/PzWblyJd7e3vTv3/+e3ycinDhx4qY1mjMzM3F0dKRNmzZ8/PHHdOvWjVatWtn9GiBa6aNr1JpVXL9+3eh8PH78OF5eXowcOZJx48ZRr149oKgWe2PN7MuXL99XJ2N+fj5OTk4opUhJScHT0/Ou7cOXL19m/fr1RnJOTEwEoEGDBsZ45k6dOpWpnWw029GdiZrdEBE2b95MeHg4ixcvxmQy0atXL0JCQoyx1ceOHWPBggUMGzbsriNIoGiHmxkzZtCsWTPat29/26/Lyclhx44dRmLev38/ULRGc3BwsJGc9RrNmi3opg/Nbiil6Ny5M507dyYxMZEpU6YQGRnJE088Qd26dRk7dixDhw6lS5cu95ww3dzc8Pb2/tM0axHh8OHDxnjmP67R3K5dO8aPH0+3bt1o0aKFXqNZs2u6Rq3ZXH5+PkuWLCEsLIwtW7bg6urKgAEDCAkJISAggJUrVxIcHHxTE4SIcODAARo2bIiHh4fx+RtrNK9bt47169dz8eJFoGiN5hvLgD722GN6jWbN7uimD63EOHr0KOHh4cyaNYuMjAwefvhhGjZsyP/93//RZP9++PBDOHeOq3Xq8EPr1gSNHIlSyqg131ijuVq1anTt2tVY1KhOnTo2vjNNuzOdqLUSJz09ndmzZxMeHs7Ro0ep7OHBiNxcni0owBVYB/zHwYE9Dg7kFRQYazTfqDUHBAToNZq1EkUnaq3EEhG2bdtGWK9eLMrKouAPrzUDulWsSPcFC+jQoYNdLfqvaffL6olaKZUOnDT7he1XVSDF1kFYmVXvOQiCbvdaDMRYKQz9/1w22Oqe/UTklmNSLTXq4+TtngylkVIquizdL+h7Liv0PdsH3YinaZpm53Si1jRNs3OWStSRFrquvSpr9wv6nssKfc92wCKdiZqmaZr56KYPTdM0O6cTtaZpmp0za6JWSvVUSp1USp1SSr1vzmvbI6WUj1Jqk1LquFLqqFLqNVvHZC1KKUel1H6l1H9sHYs1KKUqKaV+UUqd+P3/u62tY7I0pdQbv/9cH1FKzVNKFW9HBzuklJqulLqklDryh895KaXWKaV++/1fm2/bY7ZErZRyBMKAXkATYJBSqom5rm+nCoC3RORBoA0QWgbu+YbXgOO2DsKKJgCrRaQxEEApv3ellDfwKtBSRJoCjsBA20ZlETOAnv/zufeBDSLSANjw+7lNmbNG/QhwSkTOiEge8BPQx4zXtzsikiQi+37/OJ2iX15v20ZleUqpOkBvYKqtY7EGpVRFoCMwDUBE8kTkqk2Dsg4noJxSyglwBy7YOB6zE5GtQOr/fLoPMPP3j2cCT1szplsxZ6L2BhL+cH6eMpC0blBK+QOBwG4bh2IN3wPvAiYbx2Et9YDLwI+/N/dMVUp53O1NJZmIJAJfA+eAJOCaiKy1bVRWU0NEkqCoMgZUt3E8Zk3Ut9rmuUyM/VNKlQcWAq+LyHVbx2NJSqkngEsiYq31NeyBE9ACiBCRQCATO/hz2JJ+b5ftA9QFagMeSqmhto2q7DJnoj4P+PzhvA6l8E+l/6WUcqYoSc8RkUW2jscK2gNPKaXiKGre6qKUirJtSBZ3HjgvIjf+WvqFosRdmnUFzorIZRHJBxYB7Wwck7UkK6VqAfz+7yUbx2PWRL0XaKCUqquUcqGo42GZGa9vd5RSiqJ2y+Mi8q2t47EGEflAROqIiD9F/8cbRaRU17RE5CKQoJRq9PungoFjNgzJGs4BbZRS7r//nAdTyjtQ/2AZMPz3j4cDS20YC2DG1fNEpEAp9TKwhqIe4ukictRc17dT7YHngcNKqQO/f+5vIrLSdiFpFvIKMOf3SsgZYISN47EoEdmtlPoF2EfR6Kb92OHU6uJSSs0DOgFVlVLngY+AL4CflVKjKHpgPWe7CIvoKeSapml2Ts9M1DRNs3M6UWuaptk5nag1TdPsnE7UmqZpdk4nak3TNDunE7WmaZqd04la0zTNzv1/EWOI6YM17jQAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<Figure size 432x288 with 3 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "X = np.array([1, 1.2, 1.5, 1.8, 2.4, 3.3, 2.4, 1.5, 1.6])\n",
    "Y = np.array([1, 1.2, 1.5, 1.8, 2.4, 3.3, 2.4, 1.5, 1.6, 1.55, 1.8])\n",
    "Z = np.array([1, 1.2, 1.5, 1.8, 2.4, 3.3, 2.4, 1.5, 1.6, 1.55, 1.4])\n",
    "\n",
    "X = X.max() - X + 0.05\n",
    "Y = Y.max() - Y + 0.05\n",
    "Z = Z.max() - Z + 0.05\n",
    "\n",
    "\n",
    "_, ax = plt.subplots(3, 1, sharex=True, sharey=True)\n",
    "plot_pivots(X, peak_valley_pivots_detailed(X, 0.2, -0.2, True, True), ax=ax[0])\n",
    "plot_pivots(Y, peak_valley_pivots_detailed(Y, 0.2, -0.2, True, True), ax=ax[1])\n",
    "plot_pivots(Y, peak_valley_pivots_detailed(Z, 0.2, -0.2, True, True), ax=ax[2])"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "d259169a-720a-499b-845b-442afa288338",
   "metadata": {},
   "source": [
    "Restated: if we eagerly switch the final segment's mode before it resolves according to the specified thresholds, its more accurate when it eventually resolves in that direction and less accurate when it does not. Which is not very helpful.\n",
    "\n",
    "Looking at my previous documentation for this function,\n",
    "\n",
    ">    The First and Last Elements\n",
    ">    \n",
    ">    The first and last elements are guaranteed to be annotated as peak or\n",
    ">    valley even if the segments formed do not have the necessary relative\n",
    ">    changes. This is a tradeoff between technical correctness and the\n",
    ">    propensity to make mistakes in data analysis. The possible mistake is\n",
    ">    ignoring data outside the fully realized segments, which may bias\n",
    ">    analysis.\n",
    "\n",
    "which is also not very helpful because it only anticipates one type of error in bias. There is always a trade-off."
   ]
  },
  {
   "cell_type": "markdown",
   "id": "65aebc7c-5acd-4c68-81c9-dea89d1b69d7",
   "metadata": {},
   "source": [
    "In retrospect, I believe I made a mistake in the original specification, but not in the way `ytian` corrected. What to do with the final segment which is necessarily ambiguous demands an explicit decision. In fact, if there is to be a \"sensible default\" I now would lean towards no final annotation. That is, I would have opted for,"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "id": "ab3547b3-b871-46ec-82a8-c3415e64aa3b",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plot_pivots(X, peak_valley_pivots_detailed(X, 0.2, -0.2, False, True))"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "48b3e9cd-85a9-4964-ba86-e8321eb11004",
   "metadata": {},
   "source": [
    "which limits you only to the **finalized** segments -- those which cannot change with additional observations."
   ]
  },
  {
   "cell_type": "markdown",
   "id": "00e8f0ac-2f75-44f2-9d58-c75d7b0430e9",
   "metadata": {},
   "source": [
    "# To answer:"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "8fa1f30f-d2ef-437a-8f76-c4f65462a147",
   "metadata": {},
   "source": [
    "- Which is more wrong: misidentifying which points are the peaks and valleys or misidentifying the mode of a segment?"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "f685a22b-064a-423b-8e02-a100295cdd46",
   "metadata": {},
   "source": [
    "- There are a lot of people using `ZigZag` so I cannot change the behavior. Even a few breaking semver would be a foul because it could accidentally induce model drift which is kinda fucked up."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "7a2d3310-aa2d-488f-94f5-1105a76df72e",
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.8.13"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
